GithubHelp home page GithubHelp logo

advancedslimepaper's People

Contributors

amadeusmz avatar averagegithub avatar b0ykoe avatar bluesoapturtle avatar bridgelol avatar cijaaimee avatar computernerd100 avatar dartcz avatar dementisimus avatar emmanuelvlad avatar galaxy0024 avatar gerolmed avatar heyzeer0 avatar highright1234 avatar iamceph avatar korallo159 avatar kyngs avatar ledariatim1 avatar macjuul avatar owen1212055 avatar paul19988 avatar renvins avatar riku6460 avatar scipio3000 avatar szczurowsky avatar tatteaid avatar tehneon avatar untouchedodin0 avatar vytskalt avatar yannicklamprecht avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

advancedslimepaper's Issues

Worlds are not upgrading correctly from 1.20.1 -> 1.20.4

Describe the issue
When upgrading a world from 1.20.1 -> 1.20.4 the world ends up empty instead of containing the correct chunk data.

Logs do not indicate any issues

[05:21:50] [Server thread/INFO]: TheDeafCreeper issued server command: /swm load Hub
[05:21:50] [Craft Scheduler Thread - 11 - SlimeWorldManager/INFO]: [SWM] Loading world Hub.
[05:21:51] [Craft Scheduler Thread - 11 - SlimeWorldManager/INFO]: [SWM] Applying datafixers for Hub.
[05:21:53] [Craft Scheduler Thread - 11 - SlimeWorldManager/INFO]: [SWM] World Hub loaded in 2146ms.
[05:21:55] [Server thread/INFO]: TheDeafCreeper issued server command: /swm goto Hub

An earlier 1.20.4 build (I'm not sure which, every version I've tried so far failed, it was before the arrow fix though) did successfully convert worlds, and the updated worlds are correctly loaded on the current 1.20.4 server if already converted.

Spigot version
1.20.1 Server [SlimeWorldManager-15169 (MC: 1.20.1), Git 191c7b2 on paper_upstream]
1.20.4 Server [SlimeWorldManager-15616 (MC: 1.20.4), Git: b8f20c5 on paper_upstream]

Plugin version
1.20.1 Plugin [2.10.0]
1.20.4 Plugin [2.10.0]

How to reproduce
Create a world using SlimeWorldManager-15169, then try to update to 1.20.4, the world should lose all it's chunk data.

Crash reports (if available)

CRASH Failing to save a slime world after being converted

Describe the issue
Loaded a 1.17.1 slime world with entities, and unloaded it.

Spigot version
Latest paperclip of ASP

Plugin version
Latest

How to reproduce

Crash reports (if available)

Caused by: java.lang.ClassCastException: class java.lang.Float cannot be cast to class java.lang.Byte (java.lang.Float and java.lang.Byte are in module java.base of loader 'bootstrap')
  at net.minecraft.world.entity.Mob.isLeftHanded(Mob.java:1586) ~[?:?]
  at net.minecraft.world.entity.Mob.addAdditionalSaveData(Mob.java:515) ~[?:?]
  at net.minecraft.world.entity.Entity.saveWithoutId(Entity.java:2249) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-30]
  at net.minecraft.world.entity.Entity.saveAsPassenger(Entity.java:2134) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-30]
  at net.minecraft.world.entity.Entity.save(Entity.java:2150) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-30]
  at com.infernalsuite.aswm.level.NMSSlimeChunk.getEntities(NMSSlimeChunk.java:172) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-30]
  at com.infernalsuite.aswm.level.SlimeInMemoryWorld.unload(SlimeInMemoryWorld.java:109) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-30]
  at com.infernalsuite.aswm.level.SlimeChunkLevel.unloadCallback(SlimeChunkLevel.java:25) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-30]
  at net.minecraft.world.level.chunk.LevelChunk.onChunkUnload(LevelChunk.java:878) ~[?:?]
  at io.papermc.paper.chunk.system.scheduling.NewChunkHolder.handleFullStatusChange(NewChunkHolder.java:1356) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-30]
  at io.papermc.paper.chunk.system.scheduling.ChunkHolderManager.processPendingFullUpdate(ChunkHolderManager.java:1051) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-30]
  at io.papermc.paper.chunk.system.scheduling.ChunkHolderManager.processTicketUpdates(ChunkHolderManager.java:1035) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-30]
  at io.papermc.paper.chunk.system.scheduling.ChunkHolderManager.processTicketUpdates(ChunkHolderManager.java:920) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-30]
  at io.papermc.paper.chunk.system.scheduling.ChunkHolderManager.tick(ChunkHolderManager.java:547) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-30]
  at net.minecraft.server.level.DistanceManager.purgeStaleTickets(DistanceManager.java:69) ~[?:?]
  at net.minecraft.server.level.ServerChunkCache.tick(ServerChunkCache.java:646) ~[?:?]
  at net.minecraft.server.level.ServerLevel.tick(ServerLevel.java:701) ~[?:?]

Biome property not updating

Describe the issue
Default biome property not functioning correctly

Spigot version
1.20.2

Plugin version
2.10.0

How to reproduce
Import a world, I did a nether one so your biome is going to be crimson_forest or similar, then fly out, and after you're out of the render distance it will show it as plains which removes all the effects from being in the nether.

This was based off the property map in worlds (templates)

Upon loading I also tried the following

    private final Map<Environment, String> biomes = new HashMap<>() {{
        super.put(Environment.NORMAL, "minecraft:plains");
        super.put(Environment.THE_END, "minecraft:the_end");
        super.put(Environment.NETHER, "minecraft:crimson_forest");
    }};


//method
try {
            if (this.mongoLoader.isWorldLocked(key)) { //big sad
                this.mongoLoader.unlockWorld(key);
            }

            final SlimePropertyMap slimePropertyMap = new SlimePropertyMap();
            slimePropertyMap.setValue(SlimeProperties.DEFAULT_BIOME, this.biomes.get(environment));
            slimePropertyMap.setValue(SlimeProperties.ENVIRONMENT, environment.name());

            final SlimeWorld slimeWorld = this.slimePlugin.loadWorld(this.mongoLoader, key, false, slimePropertyMap);
} //catch clauses

image

Failing to load a world that was converted from 1.17.1

Describe the issue
Cannot load a world that was :

  1. loaded (converted from 1.17.1)
  2. saved (as 1.19.3)
  3. loaded

Spigot version
Latest

Plugin version
Latest

How to reproduce

Crash reports (if available)

java.lang.NullPointerException: Cannot invoke "com.infernalsuite.aswm.api.world.SlimeChunkSection.getBlockStatesTag()" because "dataSection" is null
  at com.infernalsuite.aswm.SimpleDataFixerConverter.readFromData(SimpleDataFixerConverter.java:53)
  at com.infernalsuite.aswm.SlimeNMSBridgeImpl.applyDataFixers(SlimeNMSBridgeImpl.java:134)
  at plugin-1.19.3-R0.1-SNAPSHOT.jar//com.grinderwolf.swm.plugin.SWMPlugin.loadWorld(SWMPlugin.java:252)

Cloning worlds is not working

Describe the issue

The command "/swm clone-world test1 test2" does not work. In chat only the message "Creating world test2 using test1 as template..." remains.

Spigot version
SlimeWorldManager git-SlimeWorldManager-"bb46405" (1.19.3)

Plugin version
2.10.0

How to reproduce
Slime file: test1.slime.zip

Crash reports (if available)

No crash reports available, but following exception:

[16:49:12 INFO]: Kenox issued server command: /swm clone-world test1 test2
[16:49:12 INFO]: [SWM] Loading world test1.
[16:49:12 INFO]: [SWM] Applying datafixers for test1.
[16:49:12 INFO]: [SWM] World test1 loaded in 216ms.
[16:49:12 WARN]: [SlimeWorldManager] Plugin SlimeWorldManager v2.10.0 generated an exception while executing task 13607
java.lang.NullPointerException: Cannot invoke "com.infernalsuite.aswm.utils.NibbleArray.clone()" because the return value of "com.infernalsuite.aswm.world.SlimeChunkSection.getBlockLight()" is null
        at com.infernalsuite.aswm.skeleton.SkeletonSlimeWorld.clone(SkeletonSlimeWorld.java:109) ~[core-1.19.3-R0.1-SNAPSHOT.jar:?]
        at com.grinderwolf.swm.plugin.commands.sub.CloneWorldCmd.lambda$onCommand$1(CloneWorldCmd.java:100) ~[plugin-1.19.3-R0.1-SNAPSHOT(1).jar:?]
        at org.bukkit.craftbukkit.v1_19_R2.scheduler.CraftTask.run(CraftTask.java:101) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-"bb46405"]
        at org.bukkit.craftbukkit.v1_19_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-"bb46405"]
        at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[slimeworldmanager-1.19.3.jar:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]

Sometimes chunks are not saved

Describe the issue

After gracefully stopping server (/stop) and starting it again some chunks was not saved. I didn't seen any errors in logs.

image

Spigot version
Build 1436 from Discord. I also tried to edit map on purpur fork - same issue.

Plugin version
as above

World is not saved on server stop

Describe the issue
Slime worlds are not saved on server stop.

Spigot version

This server is running SlimeWorldManager version git-SlimeWorldManager-20 (MC: 1.19.3) (Implementing API version 1.19.3-R0.1-SNAPSHOT) (Git: 887dcd0)
Unknown version
Previous version: git-SlimeWorldManager-"887dcd0" (MC: 1.19.3)

(also on previous builds)

Plugin version
2.10.0

How to reproduce
/stop

Crash reports (if available)
/

Fix the CLI tool

Describe the issue
The CLI tool was broken by the release of SWF 12 since it now relies on the bukkit persistant data. The CLI tool is very handy to quickly convert worlds and I use it quite often, so it would be nice if this were to be fixed

Spigot version
not applicable
Plugin version
Up to date with dc11277

How to reproduce
Run the CLI tool

Possible fix
Shading the PersistantDataHolder and PersistantDataContainer interfaces from spigot in the CLI. These two should probably be enough for the error to disappear

Crash reports (if available)
NOTE: Line numbers might not be accurate since the version this exception was created from contains my own improvements to the CLI experience. The error however is exactly the same on the vanilla CLI as this error stems from changes in the SlimeWorld interface and not the CLI. I just don't have a compiled version at hand atm.

Exception in thread "main" java.lang.NoClassDefFoundError: org/bukkit/persistence/PersistentDataHolder
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
        at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
        at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        at com.infernalsuite.aswm.importer.SWMImporter.importWorld(SWMImporter.java:99)
        at com.infernalsuite.aswm.importer.SWMImporter.main(SWMImporter.java:93)
Caused by: java.lang.ClassNotFoundException: org.bukkit.persistence.PersistentDataHolder
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        ... 11 more

Incorrect Tile Entity placing

Describe the issue
When entering a slime world that contains Tile Entities this can be read in the console.
It's trying to place tile entity data in the incorrect x axis. It is 16 blocks off.

Spigot version
1.20.1

Plugin version
2.1.0

How to reproduce
Import a world that contains tile entities and teleport to it once its a slime world.

Crash reports (if available)

[14:28:54 WARN]: com.destroystokyo.paper.exception.ServerInternalException: Attempted to place a tile entity (net.minecraft.world.level.block.entity.TileEntitySign@38a544d2) at 8,66,25 (Block{minecraft:snow_block}) where there was no entity tile!
[14:28:54 WARN]: Chunk coordinates: 0,16
[14:28:54 WARN]: World: minecraft:dd08560a-126b-4ac5-a31f-5e9e4743d437
[14:28:54 WARN]:        at net.minecraft.world.level.chunk.LevelChunk.setBlockEntity(LevelChunk.java:697)
[14:28:54 WARN]:        at com.infernalsuite.aswm.level.SlimeChunkConverter.lambda$deserializeSlimeChunk$3(SlimeChunkConverter.java:125)
[14:28:54 WARN]:        at net.minecraft.world.level.chunk.LevelChunk.runPostLoad(LevelChunk.java:784)
[14:28:54 WARN]:        at io.papermc.paper.chunk.system.scheduling.ChunkFullTask.run(ChunkFullTask.java:63)
[14:28:54 WARN]:        at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue$PrioritisedTask.executeInternal(PrioritisedThreadedTaskQueue.java:351)
[14:28:54 WARN]:        at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue.executeTask(PrioritisedThreadedTaskQueue.java:118)
[14:28:54 WARN]:        at io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.executeMainThreadTask(ChunkTaskScheduler.java:310)
[14:28:54 WARN]:        at net.minecraft.server.level.ServerChunkCache$MainThreadExecutor.pollTask(ServerChunkCache.java:872)
[14:28:54 WARN]:        at net.minecraft.server.level.ServerChunkCache.pollTask(ServerChunkCache.java:433)
[14:28:54 WARN]:        at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1341)
[14:28:54 WARN]:        at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1323)
[14:28:54 WARN]:        at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136)
[14:28:54 WARN]:        at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1400)
[14:28:54 WARN]:        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1185)
[14:28:54 WARN]:        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:317)
[14:28:54 WARN]:        at java.base/java.lang.Thread.run(Thread.java:833)

Read only world is saved.

Describe the issue
Read only world is saved. In my case it was tested with API.

Spigot version
Latest
Plugin version
Latest
How to reproduce
Load world
image

World is saved, even if read only is true.
image

Notice also my debug: "Save strategy" is not null, instead it's my datasource value.

Crash reports (if available)

Entities are not imported

Describe the issue
No entities are imported with /swm import.

Spigot version

This server is running SlimeWorldManager version git-SlimeWorldManager-"028b3e6" (MC: 1.19.3) (Implementing API version 1.19.3-R0.1-SNAPSHOT) (Git: 028b3e6)

Previous version: git-SlimeWorldManager-"6be7ed6" (MC: 1.19.3)

Plugin version
2.10.0

How to reproduce
Use /swm import on a world with entities

Crash reports (if available)
/

Game rules in the worlds file

Is your feature request related to a problem? Please describe.
Game rules are not stored in Slime Worlds, and I think that's great - in many cases these will be wasted storage anyway. I always used to have slime worlds for mini-game maps only, and these were loaded by the game itself and had the default game rules applied by the game.

But then I wanted to expand the usage of slime worlds to lobbies, waiting lobbies etc. and I encountered the reason why I'm creating this issue: There is no way of configuring default game rules - like setting random tick speed to zero, which is quite important for the type of maps I have.

Describe the solution you'd like
I think that users should be able to define game rules in the worlds.yml that get applied every time the world gets loaded. This doesn't result in extra wasted data in slime worlds, and I think it should be fairly easy to implement and would be (depending on the implementation) a completely optional feature.

Chunk pruning does not work at all

Describe the issue
Chunk pruning does not ignore empty chunks because ChunkPruner#areSectionsEmpty returns false in every case. This can probably be fixed by simply returning true at the end of the method instead of false. And no, the prune changes from @emmanuelvlad do not fix this.

Plugin version
Issue occurs on main branch with commit dc11277

How to reproduce
Save a world.

Crash reports (if available)
Not applicable

Startup error

Describe the issue
Error during start-up

Spigot version
I'm using slimeworldmanager-paperclip-1.19.4-R0.1-SNAPSHOT-reobf.jar

Plugin version
plugin-1.19.4-R0.1-SNAPSHOT.jar

How to reproduce
Start my server

Crash reports (if available)
latest.log

Skeleton clone not looping through SlimeChunkSection's correctly

Describe the issue
Cloning worlds other than an overworld doesn't seem to work, tried NETHER and THE_END, and both result in the same problem being thrown

https://paste.tridentgames.net/uhuvepuwib.md

Spigot version
1.20.1 (https://discord.com/channels/741733106930810950/741741550383398942/1133799086861062226)

Plugin version
https://discord.com/channels/741733106930810950/741741550383398942/1133799086861062226

How to reproduce
/swm clone-world tesing_nether nether_test mongodb

Crash reports (if available)

Nether file (before migrating):

worlds conf:
testing_nether:
source: mongodb
spawn: 0, 128, 0
difficulty: peaceful
allowMonsters: true
allowAnimals: true
dragonBattle: false
pvp: true
environment: nether
worldType: DEFAULT
defaultBiome: minecraft:crimson_forest
loadOnStartup: true
readOnly: false

Player kick/Player quit event is not being called during server disable.

Describe the issue
Player kick/Player quit event is not being called during disable.
Spigot version
latest
Plugin version
latest
How to reproduce

  1. Listen to Quit, kick event in your plugin, add some debugs.
  2. Stop server gracefully
  3. Debug messages are not shown (event not being called)
    Crash reports (if available)

World won't load

Describe the issue
Hello, I'm switching from SWM to ASP. Idk why but I have this error when I start my server.
Spigot version
1.20.4
Plugin version
2.10.0
How to reproduce
1: Upload a .slime file to slime_worlds folder
2: Add the world to worlds.yml in SWM config
3: Start the server
Crash reports (if available)
https://pastebin.com/wXLPRwpT

NPE crash

Describe the issue
Server was crashed during save.

Spigot version
Latest

Plugin version
Latest
How to reproduce

Crash reports (if available)
[08:42:47 ERROR]: Encountered an unexpected exception java.lang.NullPointerException: Cannot invoke "net.minecraft.world.level.chunk.Chunk.getChunkHolder()" because "this.chunk" is null at com.infernalsuite.aswm.level.NMSSlimeChunk.getEntities(NMSSlimeChunk.java:168) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-36] at com.infernalsuite.aswm.level.SlimeInMemoryWorld.getForSerialization(SlimeInMemoryWorld.java:224) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-36] at com.infernalsuite.aswm.level.SlimeLevelInstance.save(SlimeLevelInstance.java:150) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-36] at com.infernalsuite.aswm.level.SlimeLevelInstance.saveIncrementally(SlimeLevelInstance.java:139) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-36] at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1449) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-36] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1188) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-36] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:316) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-36] at net.minecraft.server.MinecraftServer$$Lambda$4612/0x00000000467f32c8.run(Unknown Source) ~[?:?] at java.lang.Thread.run(Unknown Source) ~[?:?]

Process lock problem on Windows machines

Describe the issue
When attempting to clone a world on a Windows server, a FileSystemException and IOException exception is thrown due to Windows file lock limitations. While it is not ideal to use Windows for a Minecraft or any type of server, I tested the code on my local machine and it's inconvenient to upload plugins to the server every time I want to test them. Additionally, some users still use plugins on Windows servers.

Spigot version
SlimeWorldManager version git-SlimeWorldManager-61 (MC: 1.19.3) (Implementing API version 1.19.3-R0.1-SNAPSHOT) (Git: e19b8ff)

Plugin version
Latest plugin-1.19.3-R0.1-SNAPSHOT.jar (2.10.0)

How to reproduce

  1. Create an SlimeWorld SWM.instance.createEmptyWorld(SWM.loader, arenaWorldName, false, slimeProperties)
  2. Load world
  3. Get world Bukkit.getWorld(templateSlimeWorld!!.name)!!
  4. Make some changes to world
  5. Unload world using Bukkit API Bukkit.unloadWorld(world, true)
  6. Clone world templateSlimeWorld!!.clone(arenaWorldName)
  7. Delete the clonned world Bukkit.unloadWorld(arena.world, false) and SWM.loader.deleteWorld(worldName)

Crash reports (if available)

[07:40:04 INFO]: [SlimeWorldManager] [STDOUT] Deleting world.. eggwars_arena_test3_1.
[07:40:04 WARN]: java.io.IOException: Cannot delete file: slime_worlds\eggwars_arena_test3_1.slime
[07:40:04 WARN]:        at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1344)
[07:40:04 WARN]:        at plugin-1.19.3-R0.1-SNAPSHOT (2).jar//com.grinderwolf.swm.plugin.loaders.file.FileLoader.deleteWorld(FileLoader.java:147)
[07:40:04 WARN]:        at SayanEggwars.jar//me.sayandevelopment.sayaneggwars.arena.EWArena$Companion$Template.deleteGeneratedArena(EWArena.kt:663)
[07:40:04 WARN]:        at SayanEggwars.jar//me.sayandevelopment.sayaneggwars.arena.EWArena.finish(EWArena.kt:326)
[07:40:04 WARN]:        at SayanEggwars.jar//me.sayandevelopment.sayaneggwars.arena.EWArena.terminate(EWArena.kt:242)
[07:40:04 WARN]:        at SayanEggwars.jar//me.sayandevelopment.sayaneggwars.test.DebugCommand.onCommand(DebugCommand.kt:54)
[07:40:04 WARN]:        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
[07:40:04 WARN]:        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
[07:40:04 WARN]:        at org.bukkit.craftbukkit.v1_19_R2.CraftServer.dispatchCommand(CraftServer.java:929)
[07:40:04 WARN]:        at org.bukkit.craftbukkit.v1_19_R2.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64)
[07:40:04 WARN]:        at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:264)
[07:40:04 WARN]:        at net.minecraft.commands.CommandDispatcher.performCommand(CommandDispatcher.java:313)
[07:40:04 WARN]:        at net.minecraft.commands.CommandDispatcher.a(CommandDispatcher.java:297)
[07:40:04 WARN]:        at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:2288)
[07:40:04 WARN]:        at net.minecraft.server.network.PlayerConnection.lambda$handleChatCommand$20(PlayerConnection.java:2248)
[07:40:04 WARN]:        at net.minecraft.util.thread.IAsyncTaskHandler.b(IAsyncTaskHandler.java:59)
[07:40:04 WARN]:        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
[07:40:04 WARN]:        at net.minecraft.server.TickTask.run(TickTask.java:18)
[07:40:04 WARN]:        at net.minecraft.util.thread.IAsyncTaskHandler.d(IAsyncTaskHandler.java:153)
[07:40:04 WARN]:        at net.minecraft.util.thread.IAsyncTaskHandlerReentrant.d(IAsyncTaskHandlerReentrant.java:24)
[07:40:04 WARN]:        at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1356)
[07:40:04 WARN]:        at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:197)
[07:40:04 WARN]:        at net.minecraft.util.thread.IAsyncTaskHandler.x(IAsyncTaskHandler.java:126)
[07:40:04 WARN]:        at net.minecraft.server.MinecraftServer.bh(MinecraftServer.java:1333)
[07:40:04 WARN]:        at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1326)
[07:40:04 WARN]:        at net.minecraft.util.thread.IAsyncTaskHandler.c(IAsyncTaskHandler.java:136)
[07:40:04 WARN]:        at net.minecraft.server.MinecraftServer.i_(MinecraftServer.java:1304)
[07:40:04 WARN]:        at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1192)
[07:40:04 WARN]:        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:316)
[07:40:04 WARN]:        at java.base/java.lang.Thread.run(Thread.java:833)
[07:40:04 WARN]: Caused by: java.nio.file.FileSystemException: slime_worlds\eggwars_arena_test3_1.slime: The process cannot access the file because it is being used by another process
[07:40:04 WARN]:        at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:92)
[07:40:04 WARN]:        at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
[07:40:04 WARN]:        at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
[07:40:04 WARN]:        at java.base/sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:275)
[07:40:04 WARN]:        at java.base/sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:110)
[07:40:04 WARN]:        at java.base/java.nio.file.Files.deleteIfExists(Files.java:1191)
[07:40:04 WARN]:        at org.apache.commons.io.file.PathUtils.deleteFile(PathUtils.java:487)
[07:40:04 WARN]:        at org.apache.commons.io.file.PathUtils.delete(PathUtils.java:392)
[07:40:04 WARN]:        at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1341)
[07:40:04 WARN]:        ... 29 more

Store chunk persistent data container

Is your feature request related to a problem? Please describe.
The chunk's persistent data container is sadly not serialized in slime worlds.

Describe the solution you'd like
In a future slime file version, a new field could be added where the persistent NBT data is stored in.

As a workaround, I currently store the persistent data container in the world's extra tag (Via a compound tag called "chunk_pdc" that stores byte array tags. The key for the array tags is the chunk's chunkKey converted to a string) on chunk/world save (and plugin unload) and load it on chunk load. It seems quite hacky, but it works. Maybe this could be added in ASP itself like I did myself instead of adding a new field?

Reload with Mongodb

Describe the issue
It happen when i reload/restart
Spigot version
SlimeWorldManager version git-SlimeWorldManager-38 (MC: 1.19.3) (Implementing API version 1.19.3-R0.1-SNAPSHOT) (Git: a65719c)
Previous version: git-Paper-139 (MC: 1.19.2)
Plugin version
version: 2.10.0
How to reproduce
Run mongodb
Run server and make empty world(/swm create sample mongodb)
Reload/restart
Crash reports (if available)
Nothing

when i reload/restart

[23:43:12 ERROR]: [org.bukkit.craftbukkit.v1_19_R2.CraftServer] Cannot invoke "java.lang.Long.longValue()" because the return value of "com.grinderwolf.swm.internal.bson.Document.getLong(java.lang.Object)" is null initializing SlimeWorldManager v2.10.0 (Is it up to date?)
java.lang.NullPointerException: Cannot invoke "java.lang.Long.longValue()" because the return value of "com.grinderwolf.swm.internal.bson.Document.getLong(java.lang.Object)" is null
        at com.grinderwolf.swm.plugin.loaders.mongo.MongoLoader.acquireLock(MongoLoader.java:237) ~[plugin-1.19.3-R0.1-SNAPSHOT.jar:?]
        at com.grinderwolf.swm.plugin.SWMPlugin.loadWorld(SWMPlugin.java:243) ~[plugin-1.19.3-R0.1-SNAPSHOT.jar:?]
        at com.grinderwolf.swm.plugin.SWMPlugin.loadWorlds(SWMPlugin.java:200) ~[plugin-1.19.3-R0.1-SNAPSHOT.jar:?]
        at com.grinderwolf.swm.plugin.SWMPlugin.onLoad(SWMPlugin.java:83) ~[plugin-1.19.3-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_19_R2.CraftServer.loadPlugins(CraftServer.java:442) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-38]
        at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:273) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-38]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1116) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-38]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:316) ~[slimeworldmanager-1.19.3.jar:git-SlimeWorldManager-38]
        at java.lang.Thread.run(Thread.java:858) ~[?:?]

when worlds save

[00:14:47] [Server thread/INFO]: Saving chunks for level 'ServerLevel[sample-181]'/minecraft:sample-181
[00:14:47] [Server thread/INFO]: Saving world sample-181...
[00:14:47] [Server thread/INFO]: CONVERTING NMS -> SKELETON
[00:14:47] [Server thread/INFO]: CONVERTED TO SKELETON, PUSHING OFF-THREAD
[00:14:47] [SWM Pool Thread #1/INFO]: World sample-181 serialized in 3ms and saved in 12ms.
[00:14:47] [Server thread/WARN]: java.lang.IllegalStateException: zip file closed
[00:14:47] [Server thread/WARN]: 	at java.base/java.util.zip.ZipFile.ensureOpen(ZipFile.java:831)
[00:14:47] [Server thread/WARN]: 	at java.base/java.util.zip.ZipFile.getEntry(ZipFile.java:330)
[00:14:47] [Server thread/WARN]: 	at java.base/java.util.jar.JarFile.getEntry(JarFile.java:518)
[00:14:47] [Server thread/WARN]: 	at java.base/java.util.jar.JarFile.getJarEntry(JarFile.java:473)
[00:14:47] [Server thread/WARN]: 	at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:189)
[00:14:47] [Server thread/WARN]: 	at java.base/java.lang.ClassLoader.loadClassHelper(ClassLoader.java:1196)
[00:14:47] [Server thread/WARN]: 	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:1111)
[00:14:47] [Server thread/WARN]: 	at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:129)
[00:14:47] [Server thread/WARN]: 	at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:124)
[00:14:47] [Server thread/WARN]: 	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:1094)
[00:14:47] [Server thread/WARN]: 	at plugin-1.19.3-R0.1-SNAPSHOT.jar//com.grinderwolf.swm.plugin.loaders.mongo.MongoLoader.unlockWorld(MongoLoader.java:281)
[00:14:47] [Server thread/WARN]: 	at com.infernalsuite.aswm.level.SlimeLevelInstance.save(SlimeLevelInstance.java:125)
[00:14:47] [Server thread/WARN]: 	at net.minecraft.server.MinecraftServer.saveAllChunks(MinecraftServer.java:866)
[00:14:47] [Server thread/WARN]: 	at net.minecraft.server.MinecraftServer.t(MinecraftServer.java:987)
[00:14:47] [Server thread/WARN]: 	at net.minecraft.server.dedicated.DedicatedServer.t(DedicatedServer.java:797)
[00:14:47] [Server thread/WARN]: 	at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1227)
[00:14:47] [Server thread/WARN]: 	at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:316)
[00:14:47] [Server thread/WARN]: 	at java.base/java.lang.Thread.run(Thread.java:858)
[00:14:47] [Server thread/INFO]: ThreadedAnvilChunkStorage (sample-1814d429d55-edb7-4f10-9790-2a5abdea68f7): All chunks are saved

Slime world is not saved to datasource after being loaded from clone.

Describe the issue
Slime world is not saved to datasource after being loaded from clone.
Spigot version
Latest SlimePaper
Plugin version
Latest Plugin
How to reproduce

  1. Clone slime world.
    clonedWorld= this.defaultWorld.clone("new_world_name", slimeLoader);

  2. Load new world.

slimePlugin.loadWorld(clonedWorld);

  1. World is not set in database, also there is missing debug in console (see attached screen which debug is missing)

image

Crash reports (if available)
If I want to check for example lock on this newly created world, it throws UnknownWorldException

Expected behavior
World is loaded like with /swm create , functions like isLocked() and so on, don't throw UnknownWorldException.

Unloading world releases lock before saving

Describe the issue
Unloading a world calls WorldUnloadEvent before saving it, the issue is that SlimePlugin is listening to this event and releasing the lock inside, right before the save is invoked

@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onWorldUnload(WorldUnloadEvent event) {
SlimeWorldInstance world = SlimeNMSBridge.instance().getInstance(event.getWorld());
if (world != null) {
Bukkit.getScheduler().runTaskAsynchronously(SWMPlugin.getInstance(), () -> unlockWorld(world.getSlimeWorldMirror()));
}
}

Spigot version
1.19.4

Plugin version
Build #15048

How to reproduce

  • /swm unload <world>
  • or unloading it through bukkit's api

Solution
The solution would be removing the onWorldUnload listener. Releasing the lock should always come after the save, thus should be managed by the unlocker.

The /swm unload <world> unlocker is releasing the lock after the save is done (line 90), but since the WorldUnloadEvent is releasing the lock right before the save, it causes the problem:

cf.thenRun(() -> {
Bukkit.getScheduler().runTask(SWMPlugin.getInstance(), () -> success.set(Bukkit.unloadWorld(world, true)));
if (!success.get()) {
sender.sendMessage(Logging.COMMAND_PREFIX + ChatColor.RED + "Failed to unload world " + worldName + ".");
} else {
world.save();
}
unlockWorldFinally(world, loader, sender);

Line 88 should also be removed since Bukkit.unloadWorld(world, true) saves the world

EDIT:
After some testing, the world save seems to done async thus making the first proposed solution fallacious.

I'd suggest to add the ability to release the lock on the saveWorld method by adding a boolean parameter releaseLock on it.
releaseLock would be set to true if the return value of Bukkit.getWorld("name") is null, this means the world is not loaded thus would be releasing the lock

Massive RAM leak & CPU consumption (basically corrupting Slime files)

Describe the issue

Strangely enough, the slime worlds consume more and more RAM (and CPU) with every unload or load. Here is a video where the whole thing is portrayed: https://www.youtube.com/watch?v=AaS2xlszLoE

In the attachments you can find the slime file before the "corruption" and after the "corruption".

Before: test2.slime.zip
After: test2_corrupt.slime.zip

Spigot version
SlimeWorldManager git-SlimeWorldManager-"bb46405" (1.19.3)

Plugin version
2.10.0

How to reproduce
Just unload and load a slime world minimum 2-5 times and you should be able to reproduce it.

Crash reports (if available)
No crash reports available, but here is the entire server log: latest.log

Expected poi chunk to be loaded with chunk

Describe the issue

[ChunkDataLoadTask] Expected poi chunk to be loaded with chunk for task com.infernalsuite.aswm.level.ChunkDataLoadTask@11429165

gets spammed in the console

Spigot version
slimeworldmanager-paperclip-1.20-R0.1-SNAPSHOT-reobf (aae15c)

Plugin version
v2.10.0 (aae15c)

How to reproduce
create a world using /swm create void file
go to the world with /swm goto void

Crash reports (if available)
error doesn't crash the server

SlimePlugin#loadWorld throws a wrong exception on non-existed world with non expected behaviour

Describe the issue
There's a bug where SlimePlugin#loadWorld(SlimeLoader, String, Boolean, SlimePropertyMap) method does not throw the UnknownWorldException based on javadocs, Instead it creates an empty slime file (not world, empty file) and throws CorruptedWorldException, and the empty file cannot be accessed until server restart (Windows machine)
Spigot version
Paper 1.19.3
Plugin version
Build ID: 341
How to reproduce
Calling the method SlimePlugin#loadWorld(SlimeLoader, String, Boolean, SlimePropertyMap) with the name being a non-existed world, it will cause this issue.

No class def found error when using SWM API.

Describe the issue

[00:49:05 ERROR]: Error occurred while enabling ***... (Is it up to date?)
java.lang.NoClassDefFoundError: com.grinderwolf.swm.api.exceptions.UnknownWorldException

Spigot version
slimeworldmanager-paperclip-1.19.3-R0.1-SNAPSHOT-reobf.jar
Plugin version
plugin-1.19.3-R0.1-SNAPSHOT.jar
How to reproduce
Use SlimeWorldManager API in your plugin.

com.grinderwolf
slimeworldmanager-api
2.10.0-SNAPSHOT
provided

rapture-snapshots https://repo.rapture.pw/repository/maven-snapshots/

Memory leak when not loading worlds

Describe the issue
When slime worlds are fetched from a source but not actually loaded as a bukkit world, they are kept in a map forever. In my case I load worlds from a template and then clone them. I only ever load the cloned version, but the template is still being keep in memory.

Spigot and Plugin version
I'm on commit e19b8ff, but the issue still exists after the 1.19.4 commit

How to reproduce
Load a world with SlimePlugin#loadWorld(SlimeLoader, String, boolean, SlimePropertyMap) and then do absolutely nothing.
(The same applies to createEmptyWorld as well)

Crash reports (if available)
None

Importing worlds is not working

Describe the issue

I am trying to import Anvil worlds into the Slime format. Unfortunately this does not work. There is no error message. Only the success message in chat with "0ms".

Spigot version
SlimeWorldManager git-SlimeWorldManager-"bb46405" (1.19.3)

Plugin version
2.10.0

How to reproduce
Anvil world: https://workupload.com/file/xm988zFUeEX

Crash reports (if available)
Nothing relevant available in the log.

SWM world unloading both fails and unloads correctly when there is a player on the world

Describe the issue
When there is a player on a SWM world when you are trying to unload it, you see two messages, one saying failed to unload that world and the other one saying the world is unloaded correctly. (it only happened to me while only I was in the world, not tested it with other cases yet)

Spigot version
SlimeWorldManager version git-SlimeWorldManager-15795 (MC: 1.20.4) (Implementing API version 1.20.4-R0.1-SNAPSHOT) (Git: 004b741 on paper_upstream)

Plugin version
2.10.0

How to reproduce

  1. Create a SWM world using file datatype (not tested on other datatypes yet)
  2. Use "/swm goto" to teleport to that world
  3. Unload the world using "/swm unload"
  4. See two messages, one saying failed to unload that world and the other one saying the world is unloaded correctly.

Crash reports (if available)

Gamerules of world not getting saved

Describe the issue
Basically, if you set gamerules for the world, it does not save, even with /save-all.

Spigot version
1.20.1 (Build from September 14th)

Plugin version
2.10.0

How to reproduce
Just apply a gamerule (like doDaylightCycle), restart the server, and boom.

Crash reports (if available)

Read Only world loaded at startup is being saved.

Describe the issue
readOnly world loaded at startup is being saved.

worlds.yml:

worlds:
    WSArena:
        source: mysql
        spawn: 0, 74, 30
        difficulty: normal
        allowMonsters: true
        allowAnimals: false
        dragonBattle: false
        pvp: true
        environment: NORMAL
        worldType: default
        defaultBiome: minecraft:plains
        loadOnStartup: true
        readOnly: true

Spigot version
git-SlimeWorldManager-55 (MC: 1.19.3) (Implementing API version 1.19.3-R0.1-SNAPSHOT) (Git: 1cafc9a)
(Also happens on Git: c9973e)

Plugin version
2.10.0

How to reproduce
Load world at startup while also marked readOnly

Crash reports (if available)

Reconsider if tile entities should influence chunk pruning

Describe the issue
I have a world where it seems like something (maybe world edit) has caused hundreds of ghost tile entities to exist without a block bound to them. I know this is a very specific issue but since (to my knowledge) tile entities require a block to exist it could be considered to just prune chunks if all chunk sections + entities are empty

This could possibly be added with another Slime Property for that, since it does impact performance to an extent. I think this would help to greatly reduce world size on some maps.

This issue also depends on #103 to be fixed or else this fix is useless

Plugin version
Issue occurs on main branch with commit dc11277

How to reproduce
Try to save a world with ghost tile entities

Cloning worlds is still not working

Describe the issue

It is a rather strange behavior currently. I'll list the things for you to understand:

  • A world cannot be cloned if it is currently loaded
  • If unload the world, then it gives me a success message
  • However, it does not load the world that is in the success message. Instead, the original world is loaded again.
  • If I now try to manually load the new world, I get an error message that it does not exist (the file is not created either)

Video: https://streamable.com/13908z

Spigot version

This server is running SlimeWorldManager version git-SlimeWorldManager-"edd8a4d" (MC: 1.19.3) (Implementing API version 1.19.3-R0.1-SNAPSHOT) (Git: edd8a4d)
Unknown version
Previous version: git-SlimeWorldManager-"9b65823" (MC: 1.19.3)

Plugin version
2.10.0

How to reproduce

Just try to clone a world.

Crash reports (if available)
/

Loading world with parameter ReadOnly true applies lock.

Describe the issue
Using slimePlugin.loadWorld(slimeLoader, "skyblock_template", true, properties); Will load world, but lock will be aplied (3rd boolean parameter readOnly is not respected in fact)
Spigot version
slimeworldmanager-paperclip-1.19.3-R0.1-SNAPSHOT-reobf.jar
Plugin version
plugin-1.19.3-R0.1-SNAPSHOT.jar
How to reproduce
Load world with readOnly parameter. In database you can see that lock is applied.
image

Expected behavior
World is created, but lock is set to 0 in database (lock isn't applied)

Cannot build project

Keep getting

`pagan@DESKTOP-AFF5HBS MINGW64 ~/IdeaProjects/AdvancedSlimePaper
$ ./gradlew applyPatches --stacktrace

Task :paper:patchCraftBukkit FAILED
Task :getPaperUpstreamData FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':paper:patchCraftBukkit'.

io.papermc.paperweight.PaperweightException: Command finished with 128 exit code: git -c commit.gpgsign=false -c core.safecrlf=false apply --ignore-whitespace --directory=src/main/java C:\Users\pagan\IdeaProjects\AdvancedSlimePaper.gradle\caches\paperweight\upstreams\paper.gradle\caches\paperweight\taskCache\patchCraftBukkitPatches.zip-1059054575\net\minecraft\world\level\storage\loot\predicates\LootItemConditionRandomChanceWithLooting.patch

  • Try:

Run with --info or --debug option to get more log output.
Run with --scan to get full insights.

  • Exception is:
    org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':paper:patchCraftBukkit'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:142)
    at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:140)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:128)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:69)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:327)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:314)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:307)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:293)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:417)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:339)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    Caused by: org.gradle.internal.UncheckedException: io.papermc.paperweight.PaperweightException: Command finished with 128 exit code: git -c commit.gpgsign=false -c core.safecrlf=false apply --ignore-whitespace --directory=src/main/java C:\Users\pagan\IdeaProjects\AdvancedSlimePaper.gradle\caches\paperweight\upstreams\paper.gradle\caches\paperweight\taskCache\patchCraftBukkitPatches.zip-1059054575\net\minecraft\world\level\storage\loot\predicates\LootItemConditionRandomChanceWithLooting.patch
    at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:68)
    at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:41)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:128)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
    at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:236)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
    at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:221)
    at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:204)
    at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:187)
    at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:165)
    at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:89)
    at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:40)
    at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:53)
    at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:50)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:50)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:40)
    at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)
    at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)
    at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
    at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
    at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
    at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
    at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:29)
    at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.executeDelegateBroadcastingChanges(CaptureStateAfterExecutionStep.java:124)
    at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:80)
    at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:58)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:36)
    at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:181)
    at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:71)
    at org.gradle.internal.Either$Right.fold(Either.java:175)
    at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59)
    at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:69)
    at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:47)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:110)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:56)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:56)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:73)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:44)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:89)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:50)
    at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:114)
    at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:57)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:76)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:50)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNoEmptySources(SkipEmptyWorkStep.java:254)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:91)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:56)
    at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32)
    at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
    at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:43)
    at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:31)
    at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40)
    at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:281)
    at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40)
    at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
    at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
    at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
    at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:44)
    at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:33)
    at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:139)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:128)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:69)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:327)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:314)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:307)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:293)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:417)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:339)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    Caused by: io.papermc.paperweight.PaperweightException: Command finished with 128 exit code: git -c commit.gpgsign=false -c core.safecrlf=false apply --ignore-whitespace --directory=src/main/java C:\Users\pagan\IdeaProjects\AdvancedSlimePaper.gradle\caches\paperweight\upstreams\paper.gradle\caches\paperweight\taskCache\patchCraftBukkitPatches.zip-1059054575\net\minecraft\world\level\storage\loot\predicates\LootItemConditionRandomChanceWithLooting.patch
    at io.papermc.paperweight.util.Command.execute(git.kt:163)
    at io.papermc.paperweight.tasks.ApplyCraftBukkitPatches.run(ApplyCraftBukkitPatches.kt:134)
    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 org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
    ... 112 more

  • Get more help at https://help.gradle.org

BUILD FAILED in 34s
2 actionable tasks: 2 executed
`
paperweight installed locally and using the latest SRC of it, what's wrong here?
I'm getting those when applyPatches task is running.

OS: Windows 10.

Slime world is not saved periodicaly.

Describe the issue
Slime world is not saved like default world (based on autosave setting).

Spigot version
build id c4e6d4
Plugin version
build id c4e6d4
How to reproduce

  1. Load world.
  2. Wait for normal world save ( save period is set in bukkit.yml)
  3. Kill server. (to avoid save on disabling)
  4. Start server, load world again, you will see old data. Save didn't work.

Expected behavior
Slime world has data from last bukkit save.

Lock is not removed on world unload

Describe the issue
Lock is not removed on world unload
Spigot version
build id c4e6d4
Plugin version
build id c4e6d4
How to reproduce
1.Load world.
2. Unload world.
3. Check for lock (it's not set to 0)

Expected behavior
Lock is removed on world unload.

Not saving entities

Describe the issue
ASWM are not saving entities.
*Latest build of ASPupperfish do, but erasing some entities at chunk loading.

Spigot version
Latest 1.20.2 builds

Plugin version
Latest builds

How to reproduce
Put an entity, unload that world, load again and all vanished.

Crash reports (if available)
When use ASPupperfish:
[01:14:26 WARN]: [EntityLookup] Root entity EntityCow['Cow'/109, uuid='f6b734ab-3a05-43bb-aec4-812052d93bfb', l='ServerLevel[island_4c5dc3a4-6885-4ef8-b4aa-ed2032051226_normal]', x=-40.33, y=104.00, z=-16.91, cpos=[-3, -2], tl=541, v=false] is outside of serialized chunk [-3, -1]

With ASPaper, no entity is saved.

Lock is not removed from world after disabling server.

Describe the issue
World is not unloaded correctly on server disabling - LOCK remains on world.
Spigot version
slimeworldmanager-paperclip-1.19.3-R0.1-SNAPSHOT-reobf.jar
Plugin version
plugin-1.19.3-R0.1-SNAPSHOT.jar
How to reproduce

  1. load world
  2. disable server

Saving world logs:
image

World in database:
image

Expected behavior
World is unloaded, lock is removed. //set to 0

World is not saved until unload

Describe the issue

The worlds are not saved unless you unload them. If one leaves the world and enters it again, all changes are gone. The command "/save-all" has no effect. Video: https://streamable.com/g3m51c

Spigot version

This server is running SlimeWorldManager version git-SlimeWorldManager-"edd8a4d" (MC: 1.19.3) (Implementing API version 1.19.3-R0.1-SNAPSHOT) (Git: edd8a4d)
Unknown version
Previous version: git-SlimeWorldManager-"9b65823" (MC: 1.19.3)

Plugin version
2.10.0

How to reproduce

  • Load any world
  • Do some changes
  • Leave server or join another world
  • Get back to your world
  • Changes were not made

Crash reports (if available)
/

Block ticks are not serialized with the world (redstone, etc)

Describe the issue

After unload/load it seems like that Redstone gets frozen. This video should explain what I mean: https://streamable.com/yuup85

Spigot version

This server is running SlimeWorldManager version git-SlimeWorldManager-"028b3e6" (MC: 1.19.3) (Implementing API version 1.19.3-R0.1-SNAPSHOT) (Git: 028b3e6)

Previous version: git-SlimeWorldManager-"6be7ed6" (MC: 1.19.3)

Plugin version
2.10.0

How to reproduce
Create any (looped) redstone machine and unload/load your world

Crash reports (if available)
/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.