Giter Site home page Giter Site logo

shreddedpaper's Introduction

ShreddedPaper

Discord

ShreddedPaper is in public beta. Most features work for most players most of the time, however things can occasionally break.

1.20.6 Purpur fork that brings vertical scaling to Minecraft.

ShreddedPaper:

  • Allows multiple threads to work together to run a single world
    • When ticking a chunk on one thread, all other chunks in a certain radius are locked so that only this thread has access to them, preventing any race conditions between threads.

See HOW_IT_WORKS.md for more information on how ShreddedPaper works.

Developing a plugin for a multi-threaded server

In summary, a plugin must be careful of:

  • Different threads updating certain data at the same time.
  • One thread reading data while it is being updated by another thread.
  • Code is to be executed on the chunk's thread, not simply the main thread.

See here for a more detailed tutorial

If your plugin already has support for Folia it is highly likely that it will already work with ShreddedPaper without any changes.
If you have a Folia check similar to the following:

try {
    Class.forName("io.papermc.paper.threadedregions.RegionizedServer");
    return true;
} catch (ClassNotFoundException e) {
    return false;
}

You should remove it and instead check of the existence of Paper's region api:

try {
    Bukkit.class.getMethod("getRegionScheduler");
    return true;
} catch (NoSuchMethodException e) {
    return false;
}

Using the ShreddedPaper API as a dependency

Clojars Project

Add the following into your build.gradle:

repositories {
  maven {
    url "https://repo.clojars.org/"
  }
}

dependencies {
  compile "com.github.puregero:shreddedpaper-api:1.20.6-R0.1-SNAPSHOT"
}

Or in your pom.xml:

<repositories>
    <repository>
        <id>clojars</id>
        <url>https://repo.clojars.org/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>com.github.puregero</groupId>
        <artifactId>shreddedpaper-api</artifactId>
        <version>1.20.6-R0.1-SNAPSHOT</version>
    </dependency>
</dependencies>

Building

Requirements:

  • You need git installed, with a configured user name and email. On windows you need to run from git bash.
  • You need jdk 21+ installed to compile (and jre 21+ to run)

Build instructions:

  1. Patch paper with: ./gradlew applyPatches
  2. Build the shreddedpaper jars with: ./gradlew shadowjar createReobfPaperclipJar
  3. Get the shreddedpaper jar from build/libs

Publishing to maven local

Publish to your local maven repository with: ./gradlew publishToMavenLocal

Note for mac users: The latest macOS version includes an incompatible version of diff and you'll need to install a compatible one. Use brew install diffutils to install it, and then reopen the terminal window.

If diff --version returns the following, it is incompatible and will not work:

Apple diff (based on FreeBSD diff)

Licensing

All code is licensed under GPLv3.

Acknowledgements

ShreddedPaper uses PaperMC's paperweight framework found here.

shreddedpaper's People

Contributors

puregero avatar prodpreva1l avatar t14d3 avatar luckybl0ck avatar

Stargazers

mykyta avatar _dusieq avatar explorer3039 avatar  avatar  avatar Zaeem Parker avatar  avatar  avatar  avatar  avatar Yuki avatar ContanoDev avatar 3JoB SRA avatar haha44444 avatar Stabrinai avatar Dreeam avatar Nostal Yuu avatar M2ke4U avatar  avatar CerealAxis avatar Snowz avatar brad avatar  avatar Günter Nejar Keller avatar  avatar  avatar  avatar Yolkin Vadim avatar Aleh avatar  avatar BlackShade avatar  avatar  avatar  avatar QuanTrieuPCYT avatar Cipher avatar Soheil avatar Blacky avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

shreddedpaper's Issues

Update 1.21

Is your feature request related to a problem?

I want to use version 1.21 to open the server

Describe the solution you'd like.

Update 1.21

Describe alternatives you've considered.

Update 1.21.1

Other

Love you

add support Forge - ForgeShreddedPaper

Is your feature request related to a problem?

add support Forge - ForgeShreddedPaper

Describe the solution you'd like.

add support Forge - ForgeShreddedPaper

Describe alternatives you've considered.

add support Forge - ForgeShreddedPaper

Other

No response

Enderman crashing server

Stack trace

2:27] [ShreddedPaperTickThread-12/ERROR]: ShreddedPaperTickThread-12 tried to run a task from the wrong thread: Cannot move entity off-main
[23:02:27] [ShreddedPaperTickThread-12/ERROR]: Extra data: entity=EnderMan['Enderman'/225979, uuid='c0c3fb3a-231f-4580-8a86-16feb121c694', l='ServerLevel[world]', x=-132405.76, y=84.00, z=52609.68, cpos=[-8276, 3288], tl=36, v=true]
[23:02:27] [ShreddedPaperTickThread-12/ERROR]: Server Version: 1.20.6-80-91b8126 (MC: 1.20.6)
[23:02:27] [ShreddedPaperTickThread-12/ERROR]: Region locks currently held (regionSize=8 chunks): [world=[[-1035,408], [-1034,408], [-1034,410], [-1036,408], [-1035,410], [-1036,410], [-1036,409], [-1034,409], [-1035,409]]]
[23:02:27] [ShreddedPaperTickThread-12/ERROR]: Stack trace:
java.lang.Throwable: null
at io.papermc.paper.util.TickThread.failedTickThreadCheck(TickThread.java:57) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.papermc.paper.util.TickThread.ensureTickThread(TickThread.java:115) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.papermc.paper.chunk.system.entity.EntityLookup.moveEntity(EntityLookup.java:498) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.papermc.paper.chunk.system.entity.EntityLookup$EntityCallback.onMove(EntityLookup.java:876) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.Entity.setPosRaw(Entity.java:4843) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.Entity.setPos(Entity.java:872) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.LivingEntity.randomTeleport(LivingEntity.java:4305) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.LivingEntity.randomTeleport(LivingEntity.java:4272) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.monster.EnderMan.teleport(EnderMan.java:360) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.monster.EnderMan.teleport(EnderMan.java:329) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.monster.EnderMan.hurt(EnderMan.java:435) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.LivingEntity.aiStep(LivingEntity.java:3580) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.Mob.aiStep(Mob.java:748) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.monster.Monster.aiStep(Monster.java:45) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.monster.EnderMan.aiStep(EnderMan.java:301) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.LivingEntity.tick(LivingEntity.java:3183) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.Mob.tick(Mob.java:474) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.server.level.ServerLevel.tickNonPassenger(ServerLevel.java:1491) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.level.Level.guardEntityTick(Level.java:1363) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperEntityTicker.tickEntity(ShreddedPaperEntityTicker.java:31) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.region.LevelChunkRegion.forEachTickingEntity(LevelChunkRegion.java:68) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperChunkTicker._tickRegion(ShreddedPaperChunkTicker.java:93) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperChunkTicker.lambda$tickRegion$1(ShreddedPaperChunkTicker.java:49) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionScheduler.lambda$run$6(ShreddedPaperRegionScheduler.java:123) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionLocker.lambda$tryLockNow$3(ShreddedPaperRegionLocker.java:111) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionLocker.tryReadOnlyLockNow(ShreddedPaperRegionLocker.java:156) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionLocker.tryLockNow(ShreddedPaperRegionLocker.java:105) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionScheduler.run(ShreddedPaperRegionScheduler.java:122) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionScheduler.lambda$createTask$5(ShreddedPaperRegionScheduler.java:114) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[?:?]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
[23:02:27] [ShreddedPaperTickThread-12/ERROR]: Entity threw exception at world:-132405.75686926488,84.0,52609.678054515636
java.lang.IllegalStateException: Cannot move entity off-main
at io.papermc.paper.util.TickThread.failedTickThreadCheck(TickThread.java:58) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.papermc.paper.util.TickThread.ensureTickThread(TickThread.java:115) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.papermc.paper.chunk.system.entity.EntityLookup.moveEntity(EntityLookup.java:498) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.papermc.paper.chunk.system.entity.EntityLookup$EntityCallback.onMove(EntityLookup.java:876) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.Entity.setPosRaw(Entity.java:4843) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.Entity.setPos(Entity.java:872) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.LivingEntity.randomTeleport(LivingEntity.java:4305) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.LivingEntity.randomTeleport(LivingEntity.java:4272) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.monster.EnderMan.teleport(EnderMan.java:360) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.monster.EnderMan.teleport(EnderMan.java:329) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.monster.EnderMan.hurt(EnderMan.java:435) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.LivingEntity.aiStep(LivingEntity.java:3580) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.Mob.aiStep(Mob.java:748) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.monster.Monster.aiStep(Monster.java:45) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.monster.EnderMan.aiStep(EnderMan.java:301) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.LivingEntity.tick(LivingEntity.java:3183) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.Mob.tick(Mob.java:474) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.server.level.ServerLevel.tickNonPassenger(ServerLevel.java:1491) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.level.Level.guardEntityTick(Level.java:1363) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperEntityTicker.tickEntity(ShreddedPaperEntityTicker.java:31) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.region.LevelChunkRegion.forEachTickingEntity(LevelChunkRegion.java:68) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperChunkTicker._tickRegion(ShreddedPaperChunkTicker.java:93) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperChunkTicker.lambda$tickRegion$1(ShreddedPaperChunkTicker.java:49) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionScheduler.lambda$run$6(ShreddedPaperRegionScheduler.java:123) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionLocker.lambda$tryLockNow$3(ShreddedPaperRegionLocker.java:111) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionLocker.tryReadOnlyLockNow(ShreddedPaperRegionLocker.java:156) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionLocker.tryLockNow(ShreddedPaperRegionLocker.java:105) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionScheduler.run(ShreddedPaperRegionScheduler.java:122) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionScheduler.lambda$createTask$5(ShreddedPaperRegionScheduler.java:114) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[?:?]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
[23:02:27] [ShreddedPaperTickThread-12/ERROR]: ShreddedPaperTickThread-12 tried to run a task from the wrong thread: Cannot remove entity off-main
[23:02:27] [ShreddedPaperTickThread-12/ERROR]: Extra data: entity=EnderMan['Enderman'/225979, uuid='c0c3fb3a-231f-4580-8a86-16feb121c694', l='ServerLevel[world]', x=-132405.76, y=84.00, z=52609.68, cpos=[-8276, 3288], tl=36, v=true]
[23:02:27] [ShreddedPaperTickThread-12/ERROR]: Server Version: 1.20.6-80-91b8126 (MC: 1.20.6)
[23:02:27] [ShreddedPaperTickThread-12/ERROR]: Region locks currently held (regionSize=8 chunks): [world=[[-1035,408], [-1034,408], [-1034,410], [-1036,408], [-1035,410], [-1036,410], [-1036,409], [-1034,409], [-1035,409]]]
[23:02:27] [ShreddedPaperTickThread-12/ERROR]: Stack trace:
java.lang.Throwable: null
at io.papermc.paper.util.TickThread.failedTickThreadCheck(TickThread.java:57) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.papermc.paper.util.TickThread.ensureTickThread(TickThread.java:115) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.Entity.setRemoved(Entity.java:4947) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.Entity.remove(Entity.java:794) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.LivingEntity.remove(LivingEntity.java:803) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.Entity.discard(Entity.java:729) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.level.Level.guardEntityTick(Level.java:1371) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperEntityTicker.tickEntity(ShreddedPaperEntityTicker.java:31) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.region.LevelChunkRegion.forEachTickingEntity(LevelChunkRegion.java:68) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperChunkTicker._tickRegion(ShreddedPaperChunkTicker.java:93) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperChunkTicker.lambda$tickRegion$1(ShreddedPaperChunkTicker.java:49) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionScheduler.lambda$run$6(ShreddedPaperRegionScheduler.java:123) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionLocker.lambda$tryLockNow$3(ShreddedPaperRegionLocker.java:111) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionLocker.tryReadOnlyLockNow(ShreddedPaperRegionLocker.java:156) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionLocker.tryLockNow(ShreddedPaperRegionLocker.java:105) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionScheduler.run(ShreddedPaperRegionScheduler.java:122) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionScheduler.lambda$createTask$5(ShreddedPaperRegionScheduler.java:114) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[?:?]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
[23:02:27] [ShreddedPaperTickThread-12/ERROR]: [ShreddedPaperChunkTicker] Exception ticking region RegionPos[-1035, 409]
java.lang.IllegalStateException: Cannot remove entity off-main
at io.papermc.paper.util.TickThread.failedTickThreadCheck(TickThread.java:58) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.papermc.paper.util.TickThread.ensureTickThread(TickThread.java:115) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.Entity.setRemoved(Entity.java:4947) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.Entity.remove(Entity.java:794) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.LivingEntity.remove(LivingEntity.java:803) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.Entity.discard(Entity.java:729) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.level.Level.guardEntityTick(Level.java:1371) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperEntityTicker.tickEntity(ShreddedPaperEntityTicker.java:31) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.region.LevelChunkRegion.forEachTickingEntity(LevelChunkRegion.java:68) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperChunkTicker._tickRegion(ShreddedPaperChunkTicker.java:93) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperChunkTicker.lambda$tickRegion$1(ShreddedPaperChunkTicker.java:49) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionScheduler.lambda$run$6(ShreddedPaperRegionScheduler.java:123) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionLocker.lambda$tryLockNow$3(ShreddedPaperRegionLocker.java:111) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionLocker.tryReadOnlyLockNow(ShreddedPaperRegionLocker.java:156) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionLocker.tryLockNow(ShreddedPaperRegionLocker.java:105) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionScheduler.run(ShreddedPaperRegionScheduler.java:122) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionScheduler.lambda$createTask$5(ShreddedPaperRegionScheduler.java:114) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[?:?]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
[23:02:27] [Server thread/ERROR]: Encountered an unexpected exception
java.lang.RuntimeException: Ticking thread crash while ticking region RegionPos[-1035, 409]
at io.multipaper.shreddedpaper.threading.ShreddedPaperChunkTicker.lambda$tickRegion$2(ShreddedPaperChunkTicker.java:51) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at java.base/java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:990) ~[?:?]
at java.base/java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(CompletableFuture.java:974) ~[?:?]
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?]
at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2194) ~[?:?]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionScheduler.run(ShreddedPaperRegionScheduler.java:130) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionScheduler.lambda$createTask$5(ShreddedPaperRegionScheduler.java:114) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[?:?]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
Caused by: java.lang.IllegalStateException: Cannot remove entity off-main
at io.papermc.paper.util.TickThread.failedTickThreadCheck(TickThread.java:58) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.papermc.paper.util.TickThread.ensureTickThread(TickThread.java:115) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.Entity.setRemoved(Entity.java:4947) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.Entity.remove(Entity.java:794) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.LivingEntity.remove(LivingEntity.java:803) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.entity.Entity.discard(Entity.java:729) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at net.minecraft.world.level.Level.guardEntityTick(Level.java:1371) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperEntityTicker.tickEntity(ShreddedPaperEntityTicker.java:31) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.region.LevelChunkRegion.forEachTickingEntity(LevelChunkRegion.java:68) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperChunkTicker._tickRegion(ShreddedPaperChunkTicker.java:93) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperChunkTicker.lambda$tickRegion$1(ShreddedPaperChunkTicker.java:49) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionScheduler.lambda$run$6(ShreddedPaperRegionScheduler.java:123) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionLocker.lambda$tryLockNow$3(ShreddedPaperRegionLocker.java:111) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionLocker.tryReadOnlyLockNow(ShreddedPaperRegionLocker.java:156) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionLocker.tryLockNow(ShreddedPaperRegionLocker.java:105) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
at io.multipaper.shreddedpaper.threading.ShreddedPaperRegionScheduler.run(ShreddedPaperRegionScheduler.java:122) ~[shreddedpaper-1.20.6.jar:1.20.6-80-91b8126]
... 7 more

Plugin and Datapack List

[23:14:25 INFO]: Bukkit Plugins: (11):
[23:14:25 INFO]: - ⁺Broadcast, *⁺DisableJoinMessage, ⁺LuckPerms, ⁺Midnight, NoChatReports, ⁺PlaceholderAPI, ProtocolLib, ⁺PureServerUtils, ⁺spark, ⁺Vault
[23:14:25 INFO]: voicechat

Actions to reproduce (if known)

I've nothing, it crashed randomly

ShreddedPaper version

[23:14:57 INFO]: Checking version, please wait...
[23:14:58 INFO]: Current ShreddedPaper Version: 1.20.6-80-91b8126 (MC: 1.20.6)*

  • You are running the latest version
    Previous: MultiPaper-1.20.1-50 (MC: 1.20.1)

Other

No response

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.