A performance-oriented fork of Purpur intended to increase performance for entity-heavy servers by implementing multi-threaded and asynchronous improvements.

Related tags

App Petal
Overview

petal_logo

Petal Performance Minecraft JAR

Petal is a performance-oriented fork of Purpur intended to increase performance for entity-heavy servers by implementing multi-threaded and asynchronous improvements.

Sponsored by Bloom Host

bloom_logo

Development of this fork is sponsored by Bloom Host, your home for the highest performance dedicated-core Minecraft hosting, VPS hosting, and bare metal dedicated servers. Bloom serves thousands of customers across the world with locations in Virginia, Dallas, Los Angeles, Miami, Germany, and soon to be Singapore!

Join the Bloom Host discord to connect with over 4,000 members and learn more about their services. Petal ticket support is limited to customers of Bloom Host, but a community support channel is available in the Bloom discord for anybody to use.

For a limited time, you can enjoy 15% off your first invoice for any Minecraft/VPS hosting product with the coupon code PETALPOWER

Features

Petal focuses on two specific improvements for entity-heavy servers:

  • Async Pathfinding Entity pathfinding is offloaded to asynchronous threads to significantly reduce processing from the main thread
  • Multi-threaded Entity Tracking Entity tracking can take advantage of multiple threads to greatly reduce dependence on main thread processing

As Petal is forked from Purpur, it enjoys several performance features from other projects including:

  • Sentry Integration Easily track all errors coming from your server in excruciating detail (Pufferfish)
  • Better Entity Performance Reduces the performance impact of entities by skipping useless work and making barely-noticeable changes to behavior (Pufferfish)
  • Partial Asynchronous Processing Partially offloads some heavy work to other threads where possible without sacrificing stability (Pufferfish)
  • 8x Faster Map Rendering Reduces or eliminates lag spikes caused by plugins like ImageOnMap or ImageMaps (Pufferfish)
  • 30% faster hoppers over Paper (Airplane)
  • Reduced GC times & frequency from removing useless allocations, which also improves CPU performance (Airplane)
  • Fast raytracing which improves performance of any entity which utilizes line of sight, mainly Villagers (Airplane)
  • Built-in profiler which has 0 performance hit and easy to read metrics for both server owners and developers (Airplane)

Testimonials

Petal has significantly improved entity performance on our 1.19 servers such as survival & skyblock. This has allowed us to increase per player mob spawn caps & increase frequency of mob spawning without having to worry about taking a performance hit.

-Foxcraft

Download

The latest JAR can currently be found on the releases page here.

License

Petal is licensed under GPLv3.

Comments
  • Entity threw exception

    Entity threw exception

    [22:39:08 ERROR]: Entity threw exception at world:481.5,137.6875,-5992.5 java.util.NoSuchElementException: No value present at java.util.Optional.get(Optional.java:143) ~[?:?] at net.minecraft.world.entity.ai.behavior.MoveToTargetSink.tick(MoveToTargetSink.java:105) ~[?:?] at net.minecraft.world.entity.ai.behavior.MoveToTargetSink.canStillUse(MoveToTargetSink.java:19) ~[?:?] at net.minecraft.world.entity.ai.behavior.Behavior.tickOrStop(Behavior.java:74) ~[petal-1.19.jar:git-Petal-"4c739e7"] at net.minecraft.world.entity.ai.Brain.tickEachRunningBehavior(Brain.java:430) ~[?:?] at net.minecraft.world.entity.ai.Brain.tick(Brain.java:375) ~[?:?] at net.minecraft.world.entity.npc.Villager.mobTick(Villager.java:357) ~[?:?] at net.minecraft.world.entity.npc.Villager.customServerAiStep(Villager.java:338) ~[?:?] at net.minecraft.world.entity.Mob.serverAiStep(Mob.java:910) ~[?:?] at net.minecraft.world.entity.LivingEntity.aiStep(LivingEntity.java:3391) ~[?:?] at net.minecraft.world.entity.Mob.aiStep(Mob.java:665) ~[?:?] at net.minecraft.world.entity.AgeableMob.aiStep(AgeableMob.java:154) ~[?:?] at net.minecraft.world.entity.LivingEntity.tick(LivingEntity.java:3033) ~[?:?] at net.minecraft.world.entity.Mob.tick(Mob.java:427) ~[?:?] at net.minecraft.world.entity.npc.Villager.tick(Villager.java:407) ~[?:?] at net.minecraft.server.level.ServerLevel.tickNonPassenger(ServerLevel.java:1236) ~[?:?] at net.minecraft.server.level.ServerLevel.lambda$tick$6(ServerLevel.java:715) ~[?:?] at net.minecraft.world.level.entity.EntityTickList.forEach(EntityTickList.java:42) ~[petal-1.19.jar:git-Petal-"4c739e7"] at net.minecraft.server.level.ServerLevel.tick(ServerLevel.java:693) ~[?:?] at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1579) ~[petal-1.19.jar:git-Petal-"4c739e7"] at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:485) ~[petal-1.19.jar:git-Petal-"4c739e7"] at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1441) ~[petal-1.19.jar:git-Petal-"4c739e7"] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1208) ~[petal-1.19.jar:git-Petal-"4c739e7"] at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:307) ~[petal-1.19.jar:git-Petal-"4c739e7"] at java.lang.Thread.run(Thread.java:833) ~[?:?]

    opened by PLESOP 6
  • Plugin applied DARKNESS effect makes player completely blind

    Plugin applied DARKNESS effect makes player completely blind

    If I apply darkness effect to player using plugin (tested with ConditionalEvents and Denizen) it makes player absolutely blind, which is not vanilla behavior. But if effect applied by vanilla /effect command it works properly.

    Issue does not exist on Purpur and below

    Applied by plugin: image

    Applied by vanilla command: image

    opened by Fenix5fire 5
  • ModelEngine entities reset their walk animation when its target moves

    ModelEngine entities reset their walk animation when its target moves

    Entities modelled by ModelEngine keep cancelling their movement animation when its target location changes. When the target stands still the animation progresses just fine. On purpur works as intended.

    Steps to reproduce:

    1. run petal blank server without any plugins
    2. install model engine plugin
    3. download this sample model and place it in plugins/ModelEngine/blueprints
    4. type command /meg summon luffy silverfish
    5. watch its movement reset whenever player moves
    6. repeat for purpur and watch it not
    7. for better experience, install resource pack generated in the plugin folder (not required)

    Petal version: 1.19-pre-2 Purpur version: 1.19-1715 & 1.19-1716 Plugins: only ModelEngine Demo required

    Video comparison. Focus on the legs. The moment I stop moving the animation starts to play out correctly. Petal-1.19-pre-2

    https://user-images.githubusercontent.com/3482915/179472194-8b56dfb7-fcf5-43da-bfa1-43ad381f2375.mp4

    Purpur-1.19-1715 & Purpur-1.19-1716

    https://user-images.githubusercontent.com/3482915/179471698-614e0ade-1045-44ea-a57c-6741f2b3e39a.mov

    Additional info: Purpur 1716 contains some of the petal patches and doesn't have this issue. I think that should narrow the list of possible causes?

    Thanks!

    Update: looks like the latest purpur build does not have petal patches thus this bug didn't happen on 1716 build.

    opened by Cestis 5
  • KB not working Petal

    KB not working Petal

    I have a server with the latest version "git-petal-"3efc156" (MC: 1.19.2)" and the KB of the players was deactivated, I don't have any plugin since I took it out thinking it was one of them, and it's still the same without having KB

    opened by LautaKooh 3
  • Upstream updates

    Upstream updates

    Purpur has a script and github action which runs on a cron schedule that updates from upstream and i think it'd probably be in the best interest to implement something like that here too, If wanted i can make a pr with the required files.

    opened by DaRacci 3
  • Error on latest build

    Error on latest build

    [20:33:08 ERROR]: Entity threw exception at Overworld:-1256.431526762105,26.0,11172.153295030048 java.util.NoSuchElementException: No value present at java.util.Optional.get(Optional.java:143) ~[?:?] at net.minecraft.world.entity.ai.behavior.MoveToTargetSink.tick(MoveToTargetSink.java:114) ~[?:?] at net.minecraft.world.entity.ai.behavior.MoveToTargetSink.canStillUse(MoveToTargetSink.java:21) ~[?:?] at net.minecraft.world.entity.ai.behavior.Behavior.tickOrStop(Behavior.java:74) ~[petal-1.19.jar:git-petal-"7b3fb09"] at net.minecraft.world.entity.ai.Brain.tickEachRunningBehavior(Brain.java:430) ~[?:?] at net.minecraft.world.entity.ai.Brain.tick(Brain.java:375) ~[?:?] at net.minecraft.world.entity.npc.Villager.mobTick(Villager.java:357) ~[?:?] at net.minecraft.world.entity.npc.Villager.customServerAiStep(Villager.java:338) ~[?:?] at net.minecraft.world.entity.Mob.serverAiStep(Mob.java:910) ~[?:?] at net.minecraft.world.entity.LivingEntity.aiStep(LivingEntity.java:3393) ~[?:?] at net.minecraft.world.entity.Mob.aiStep(Mob.java:665) ~[?:?] at net.minecraft.world.entity.AgeableMob.aiStep(AgeableMob.java:154) ~[?:?] at net.minecraft.world.entity.LivingEntity.tick(LivingEntity.java:3035) ~[?:?] at net.minecraft.world.entity.Mob.tick(Mob.java:427) ~[?:?] at net.minecraft.world.entity.npc.Villager.tick(Villager.java:407) ~[?:?] at net.minecraft.server.level.ServerLevel.tickNonPassenger(ServerLevel.java:1236) ~[?:?] at net.minecraft.server.level.ServerLevel.lambda$tick$6(ServerLevel.java:715) ~[?:?] at net.minecraft.world.level.entity.EntityTickList.forEach(EntityTickList.java:42) ~[petal-1.19.jar:git-petal-"7b3fb09"] at net.minecraft.server.level.ServerLevel.tick(ServerLevel.java:693) ~[?:?] at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1579) ~[petal-1.19.jar:git-petal-"7b3fb09"] at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:485) ~[petal-1.19.jar:git-petal-"7b3fb09"] at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1441) ~[petal-1.19.jar:git-petal-"7b3fb09"] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1208) ~[petal-1.19.jar:git-petal-"7b3fb09"] at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:307) ~[petal-1.19.jar:git-petal-"7b3fb09"] at java.lang.Thread.run(Thread.java:833) ~[?:?]

    opened by KayaLambrechts 3
  • FastAsyncWorldEdit throwing errors during startup & using `//mask`

    FastAsyncWorldEdit throwing errors during startup & using `//mask`

    Using the latest version of FastAsyncWorldEdit and Petal, //mask appears to be broken.

    The log is long so I didn't want to post it in the issue: https://bin.bloom.host/garegeraju.log

    Steps to reproduce

    1. Get a stick
    2. //br sphere grass_block
    3. //mask stone
    4. Right click

    It is also throwing an exception during startup:

    [03:44:40 WARN]: java.lang.NoSuchFieldException: t
    [03:44:40 WARN]:        at java.base/java.lang.Class.getDeclaredField(Class.java:2610)
    [03:44:40 WARN]:        at FastAsyncWorldEdit.jar//com.sk89q.worldedit.bukkit.adapter.impl.fawe.v1_19_R1.PaperweightPlatformAdapter.<clinit>(PaperweightPlatformAdapter.java:151)
    [03:44:40 WARN]:        at java.base/java.lang.Class.forName0(Native Method)
    [03:44:40 WARN]:        at java.base/java.lang.Class.forName(Class.java:375)
    [03:44:40 WARN]:        at FastAsyncWorldEdit.jar//com.sk89q.worldedit.bukkit.adapter.BukkitImplLoader.loadAdapter(BukkitImplLoader.java:170)
    [03:44:40 WARN]:        at FastAsyncWorldEdit.jar//com.sk89q.worldedit.bukkit.WorldEditPlugin.loadAdapter(WorldEditPlugin.java:361)
    [03:44:40 WARN]:        at FastAsyncWorldEdit.jar//com.sk89q.worldedit.bukkit.WorldEditPlugin.setupPreWorldData(WorldEditPlugin.java:232)
    [03:44:40 WARN]:        at FastAsyncWorldEdit.jar//com.sk89q.worldedit.bukkit.WorldEditPlugin.onEnable(WorldEditPlugin.java:205)
    [03:44:40 WARN]:        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264)
    [03:44:40 WARN]:        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370)
    [03:44:40 WARN]:        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:547)
    [03:44:40 WARN]:        at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugin(CraftServer.java:594)
    [03:44:40 WARN]:        at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugins(CraftServer.java:508)
    [03:44:40 WARN]:        at net.minecraft.server.dedicated.DedicatedServer.e(DedicatedServer.java:314)
    [03:44:40 WARN]:        at net.minecraft.server.MinecraftServer.v(MinecraftServer.java:1137)
    [03:44:40 WARN]:        at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:307)
    [03:44:40 WARN]:        at java.base/java.lang.Thread.run(Thread.java:833)
    

    These issues do not occur on Paper.

    opened by Log1x 3
  • Players are not pushed when they hit each other

    Players are not pushed when they hit each other

    I have the latest version of petal 1.19.2 without plugins or optimizations, all in default, and even when sticking the players are not pushed like normally.

    opened by LautaKooh 2
  • PlayerTrackEntityEvent does not exist.

    PlayerTrackEntityEvent does not exist.

    Paper has an event called PlayerTrackEntityEvent, Purpur also has it since it is a fork of Paper. Petal is a fork of Purpur, but Petal has no PlayerTrackEntityEvent, this cause some plugins that registe the event are not working. image

    opened by WMGameLive 1
  • Entity prevented from being added/removed to world

    Entity prevented from being added/removed to world

    I'm listening to the EntityAddToWorldEvent (this issue isn't exclusive to EntityAddToWorldEvent) as part of my chunk scanner to limit entities. However, I'm having trouble removing entities regardless if I'm using the main synchronous thread. I've also tried adding a Bukkit#isPrimaryThread() check before removing the entity, but I still receive the following error:

    [15:31:34 WARN]: Entity EntityItem['Stone'/716, uuid='1491683a-1b2e-414c-83dc-787db3df535e', l='ServerLevel[world]', x=169.74, y=87.32, z=246.53, cpos=[10, 15], tl=0, v=true] is currently prevented from being added/removed to world since it is processing section status updates
    java.lang.Throwable: null
    	at net.minecraft.world.entity.Entity.setRemoved(Entity.java:4507) ~[petal-1.19.2.jar:git-petal-"cc69154"]
    	at net.minecraft.world.entity.Entity.remove(Entity.java:706) ~[petal-1.19.2.jar:git-petal-"cc69154"]
    	at net.minecraft.world.entity.Entity.discard(Entity.java:688) ~[petal-1.19.2.jar:git-petal-"cc69154"]
    	at org.bukkit.craftbukkit.v1_19_R1.entity.CraftEntity.remove(CraftEntity.java:693) ~[petal-1.19.2.jar:git-petal-"cc69154"]
    	at tech.kaxon.vlsurvival.listeners.SpawnListener.remove(SpawnListener.java:228) ~[VLSurvival.jar:?]
    	at tech.kaxon.vlsurvival.listeners.SpawnListener.removeEntity(SpawnListener.java:219) ~[VLSurvival.jar:?]
    	at tech.kaxon.vlsurvival.listeners.SpawnListener.onSpawn(SpawnListener.java:177) ~[VLSurvival.jar:?]
    	at com.destroystokyo.paper.event.executor.MethodHandleEventExecutor.execute(MethodHandleEventExecutor.java:40) ~[petal-api-1.19.2-R0.1-SNAPSHOT.jar:?]
    	at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76) ~[petal-api-1.19.2-R0.1-SNAPSHOT.jar:git-petal-"cc69154"]
    	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[petal-api-1.19.2-R0.1-SNAPSHOT.jar:?]
    	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:678) ~[petal-api-1.19.2-R0.1-SNAPSHOT.jar:?]
    	at org.bukkit.event.Event.callEvent(Event.java:45) ~[petal-api-1.19.2-R0.1-SNAPSHOT.jar:?]
    	at net.minecraft.server.level.ServerLevel$EntityCallbacks.onTrackingStart(ServerLevel.java:2674) ~[?:?]
    	at net.minecraft.server.level.ServerLevel$EntityCallbacks.c(ServerLevel.java:2603) ~[?:?]
    	at io.papermc.paper.chunk.system.entity.EntityLookup.entityStatusChange(EntityLookup.java:265) ~[petal-1.19.2.jar:git-petal-"cc69154"]
    	at io.papermc.paper.chunk.system.entity.EntityLookup.addEntity(EntityLookup.java:388) ~[petal-1.19.2.jar:git-petal-"cc69154"]
    	at io.papermc.paper.chunk.system.entity.EntityLookup.addNewEntity(EntityLookup.java:326) ~[petal-1.19.2.jar:git-petal-"cc69154"]
    	at net.minecraft.server.level.ServerLevel.addEntity(ServerLevel.java:1565) ~[?:?]
    	at net.minecraft.server.level.ServerLevel.addFreshEntity(ServerLevel.java:1468) ~[?:?]
    	at net.minecraft.server.level.ServerLevel.addFreshEntity(ServerLevel.java:1463) ~[?:?]
    	at net.minecraft.server.level.ServerPlayer.drop(ServerPlayer.java:2378) ~[?:?]
    	at net.minecraft.world.entity.player.Player.drop(Player.java:752) ~[?:?]
    	at net.minecraft.server.network.ServerGamePacketListenerImpl.handleSetCreativeModeSlot(ServerGamePacketListenerImpl.java:3609) ~[?:?]
    	at net.minecraft.network.protocol.game.ServerboundSetCreativeModeSlotPacket.handle(ServerboundSetCreativeModeSlotPacket.java:18) ~[?:?]
    	at net.minecraft.network.protocol.game.ServerboundSetCreativeModeSlotPacket.handle(ServerboundSetCreativeModeSlotPacket.java:12) ~[?:?]
    	at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:51) ~[?:?]
    	at net.minecraft.server.TickTask.run(TickTask.java:18) ~[petal-1.19.2.jar:git-petal-"cc69154"]
    	at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
    	at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
    	at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1368) ~[petal-1.19.2.jar:git-petal-"cc69154"]
    	at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:185) ~[petal-1.19.2.jar:git-petal-"cc69154"]
    	at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
    	at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1345) ~[petal-1.19.2.jar:git-petal-"cc69154"]
    	at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1338) ~[petal-1.19.2.jar:git-petal-"cc69154"]
    	at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
    	at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1316) ~[petal-1.19.2.jar:git-petal-"cc69154"]
    	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1204) ~[petal-1.19.2.jar:git-petal-"cc69154"]
    	at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:310) ~[petal-1.19.2.jar:git-petal-"cc69154"]
    	at java.lang.Thread.run(Thread.java:833) ~[?:?]
    
    opened by kaxlabs 1
  • crash on start, how can i fix it ?

    crash on start, how can i fix it ?

    crash log file here

    ---- Minecraft Crash Report ---- // // DO NOT REPORT THIS TO PAPER! REPORT TO PURPUR INSTEAD!// Don't be sad. I'll do better next time, I promise!

    Time: 2022-10-18 03:53:21 Description: Exception in server tick loop

    org.spongepowered.configurate.serialize.SerializationException: [environment, nether-ceiling-void-damage-height] of type java.lang.Integer: java.lang.NumberFormatException: For input string: "disabled" at org.spongepowered.configurate.serialize.NumericSerializers.parseNumber(NumericSerializers.java:346) at org.spongepowered.configurate.serialize.NumericSerializers.lambda$static$9(NumericSerializers.java:254) at org.spongepowered.configurate.serialize.FunctionScalarSerializer.deserialize(FunctionScalarSerializer.java:40) at org.spongepowered.configurate.serialize.ScalarSerializer.deserialize(ScalarSerializer.java:115) at org.spongepowered.configurate.objectmapping.ObjectMapperImpl.load0(ObjectMapperImpl.java:64) at org.spongepowered.configurate.objectmapping.ObjectMapperImpl.load(ObjectMapperImpl.java:48) at org.spongepowered.configurate.objectmapping.ObjectMapperFactoryImpl.deserialize(ObjectMapperFactoryImpl.java:204) at org.spongepowered.configurate.objectmapping.ObjectMapperImpl.load0(ObjectMapperImpl.java:64) at org.spongepowered.configurate.objectmapping.ObjectMapperImpl.load(ObjectMapperImpl.java:48) at org.spongepowered.configurate.objectmapping.ObjectMapperFactoryImpl.deserialize(ObjectMapperFactoryImpl.java:204) at org.spongepowered.configurate.AbstractConfigurationNode.get(AbstractConfigurationNode.java:151) at org.spongepowered.configurate.ConfigurationNode.get(ConfigurationNode.java:520) at org.spongepowered.configurate.ConfigurationNode.require(ConfigurationNode.java:407) at io.papermc.paper.configuration.Configurations.initializeWorldDefaultsConfiguration(Configurations.java:154) at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:215) at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1142) at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:310) at java.base/java.lang.Thread.run(Thread.java:833) Suppressed: org.spongepowered.configurate.serialize.SerializationException: [fixes, falling-block-height-nerf] of type java.lang.Integer: java.lang.NumberFormatException: For input string: "disabled" ... 18 more Suppressed: org.spongepowered.configurate.serialize.SerializationException: [fixes, tnt-entity-height-nerf] of type java.lang.Integer: java.lang.NumberFormatException: For input string: "disabled" ... 18 more Caused by: java.lang.NumberFormatException: For input string: "disabled" at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) at java.base/java.lang.Integer.parseInt(Integer.java:668) at org.spongepowered.configurate.serialize.NumericSerializers.parseNumber(NumericSerializers.java:344) ... 17 more Caused by: java.lang.NumberFormatException: For input string: "disabled" at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) at java.base/java.lang.Integer.parseInt(Integer.java:668) at org.spongepowered.configurate.serialize.NumericSerializers.parseNumber(NumericSerializers.java:344) ... 17 more Caused by: java.lang.NumberFormatException: For input string: "disabled" at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) at java.base/java.lang.Integer.parseInt(Integer.java:668) at org.spongepowered.configurate.serialize.NumericSerializers.parseNumber(NumericSerializers.java:344) ... 17 more

    A detailed walkthrough of the error, its code path and all known details is as follows:

    -- System Details -- Details: Minecraft Version: 1.19.2 Minecraft Version ID: 1.19.2 Operating System: Linux (amd64) version 5.15.0-50-generic Java Version: 17.0.4.1, Amazon.com Inc. Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Amazon.com Inc. Memory: 5932434432 bytes (5657 MiB) / 6442450944 bytes (6144 MiB) up to 6442450944 bytes (6144 MiB) CPUs: 2 Processor Vendor: GenuineIntel Processor Name: Intel(R) Xeon(R) CPU E3-1270 v5 @ 3.60GHz Identifier: Intel64 Family 6 Model 94 Stepping 3 Microarchitecture: Skylake (Client) Frequency (GHz): 3.60 Number of physical packages: 2 Number of physical CPUs: 2 Number of logical CPUs: 2 Graphics card #0 name: SVGA II Adapter Graphics card #0 vendor: VMware (0x15ad) Graphics card #0 VRAM (MB): 128.00 Graphics card #0 deviceId: 0x0405 Graphics card #0 versionInfo: unknown Memory slot #0 capacity (MB): 4096.00 Memory slot #0 clockSpeed (GHz): -0.00 Memory slot #0 type: DRAM Memory slot #1 capacity (MB): 2048.00 Memory slot #1 clockSpeed (GHz): -0.00 Memory slot #1 type: DRAM Virtual memory max (MB): 7062.98 Virtual memory used (MB): 7229.24 Swap memory total (MB): 4096.00 Swap memory used (MB): 1351.89 JVM Flags: 19 total; -Xms6G -Xmx6G -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 CraftBukkit Information: Running: petal version git-petal-"3efc156" (MC: 1.19.2) (Implementing API version 1.19.2-R0.1-SNAPSHOT) false Plugins: {} Warnings: DEFAULT Reload Count: 0 Threads: { RUNNABLE Reference Handler: [[email protected]/java.lang.ref.Reference.waitForReferencePendingList(Native Method), [email protected]/java.lang.ref.Reference.processPendingReferences(Reference.java:253), [email protected]/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:215)], TIMED_WAITING Craft Scheduler Thread - 2: [[email protected]/jdk.internal.misc.Unsafe.park(Native Method), [email protected]/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252), [email protected]/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:401), [email protected]/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:903), [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1061), [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122), [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635), [email protected]/java.lang.Thread.run(Thread.java:833)], TIMED_WAITING Craft Scheduler Thread - 1: [[email protected]/jdk.internal.misc.Unsafe.park(Native Method), [email protected]/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252), [email protected]/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:401), [email protected]/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:903), [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1061), [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122), [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635), [email protected]/java.lang.Thread.run(Thread.java:833)], WAITING Finalizer: [[email protected]/java.lang.Object.wait(Native Method), [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155), [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176), [email protected]/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:172)], TIMED_WAITING process reaper: [[email protected]/jdk.internal.misc.Unsafe.park(Native Method), [email protected]/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252), [email protected]/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:401), [email protected]/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:903), [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1061), [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122), [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635), [email protected]/java.lang.Thread.run(Thread.java:833)], TIMED_WAITING Timer hack thread: [[email protected]/java.lang.Thread.sleep(Native Method), net.minecraft.SystemUtils$7.run(SystemUtils.java:713)], RUNNABLE Notification Thread: [], RUNNABLE Signal Dispatcher: [], TIMED_WAITING Craft Scheduler Thread - 0: [[email protected]/jdk.internal.misc.Unsafe.park(Native Method), [email protected]/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252), [email protected]/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:401), [email protected]/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:903), [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1061), [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122), [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635), [email protected]/java.lang.Thread.run(Thread.java:833)], RUNNABLE DestroyJavaVM: [], TIMED_WAITING Craft Scheduler Thread - 3: [[email protected]/jdk.internal.misc.Unsafe.park(Native Method), [email protected]/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252), [email protected]/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:401), [email protected]/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:903), [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1061), [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122), [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635), [email protected]/java.lang.Thread.run(Thread.java:833)], WAITING Worker-Main-1: [[email protected]/jdk.internal.misc.Unsafe.park(Native Method), [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341), [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506), [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3463), [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434), [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1623), [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435), [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062), [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122), [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635), [email protected]/java.lang.Thread.run(Thread.java:833)], TIMED_WAITING Common-Cleaner: [[email protected]/java.lang.Object.wait(Native Method), [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155), [email protected]/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:140), [email protected]/java.lang.Thread.run(Thread.java:833), [email protected]/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:162)], RUNNABLE Server thread: [[email protected]/java.lang.Thread.dumpThreads(Native Method), [email protected]/java.lang.Thread.getAllStackTraces(Thread.java:1662), org.bukkit.craftbukkit.v1_19_R1.CraftCrashReport.get(CraftCrashReport.java:33), org.bukkit.craftbukkit.v1_19_R1.CraftCrashReport.get(CraftCrashReport.java:17), net.minecraft.SystemReport.a(SystemReport.java:62), net.minecraft.CrashReport.(CrashReport.java:38), net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1300), net.minecraft.server.MinecraftServer.v(MinecraftServer.java:1244), net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:310), net.minecraft.server.MinecraftServer$$Lambda$4339/0x000000080152bd98.run(Unknown Source), [email protected]/java.lang.Thread.run(Thread.java:833)], WAITING Java2D Disposer: [[email protected]/java.lang.Object.wait(Native Method), [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155), [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176), [email protected]/sun.java2d.Disposer.run(Disposer.java:145), [email protected]/java.lang.Thread.run(Thread.java:833)], WAITING Log4j2-AsyncAppenderEventDispatcher-1-Async: [[email protected]/jdk.internal.misc.Unsafe.park(Native Method), [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341), [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506), [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3463), [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434), [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1623), [email protected]/java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:420), org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher.dispatchAll(AsyncAppenderEventDispatcher.java:71), org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher.run(AsyncAppenderEventDispatcher.java:63)],}

    Force Loaded Chunks: {} Server Running: true Player Count: 0 / 200; [] Data Packs: vanilla, file/bukkit (incompatible) World Generation: ERR Is Modded: Definitely; Server brand changed to 'petal' Type: Dedicated Server (map_server.txt)

    opened by diocan 1
  • Entities don't move in water - Async Pathfinding

    Entities don't move in water - Async Pathfinding

    Entities do not move in water. They only spin.

    Petal 1.19.2-pre-3 https://youtu.be/OgHStAP5skc

    Purpur 1.19.2 #1762 (enable-async-pathfinding: false) https://youtu.be/gfHhp_EilUM

    opened by Pantera07 6
  • Error disconected shulkerbox

    Error disconected shulkerbox

    this is a bug that happens when you grab or move a shulkerbox that contains renamed items into your inventory

    examples of the error: https://cdn.discordapp.com/attachments/1005702961135108136/1005704518698283089/VID_20220806_221013.mp4

    opened by PasteDev 7
  • SafariNet incompatibility

    SafariNet incompatibility

    We've noticed some slight issues with SafariNet (https://www.spigotmc.org/resources/%E2%9C%85-safarinet-premium-mob-catcher-plugin.9732/), the plugin will stop working at random, reloading the plugin resolves the issue. This issue doesn't occur on Purpur

    error: https://bin.bloom.host/pahulaxiju.sql

    opened by KayaLambrechts 2
Owner
Bloom
Bloom
A distribution of performance-oriented Bukkit patches that aims to keep stability and vanilla behaviour

Patina A distribution of performance-oriented Bukkit patches that aims to keep stability and vanilla behaviour. You can find explanation of configurat

null 107 Dec 26, 2022
A code base to retrieve flight schedules and demonstrate heavy modularisation.

FS2020 Flight Scheduler This will eventually produce an application that allows us to convert real life traffic from any source into traccic that can

Jordan Terry 6 Dec 5, 2022
A sussy 1.17.1 Airplane fork that (hopefully) has better performance and relatively stable

Fiadelity A sussy Minecraft server software This project is experimental, its usage in production environment is discouraged if you are not ready to f

null 5 Dec 17, 2022
This is a simple example of Aspect Oriented Programming in Android

Android-AOPExample This is a simple example of Aspect Oriented Programming in Android as part of a blog post I have written. The idea was to measure h

Fernando Cejas 422 Nov 25, 2022
Abel Suviri 6 Dec 16, 2022
Media Provider Manager - An Xposed module intended to prevent media storage abuse

Media Provider Manager - An Xposed module intended to prevent media storage abuse

null 104 Dec 26, 2022
Simple metrics exporter HTTP server for Prometheus meant to be used for private Discord servers.

Discord Prometheus Exporter Simple metrics exporter HTTP server for Prometheus meant to be used for private Discord servers. Thanks to the creator of

Subham 2 Nov 29, 2022
A simple Discord bot that aims to provide a snapshot of the join logs given a range of time for servers.

?? What is Humpy Dumpy? Humpy Dumpy is a simple Discord bot that aims to provide a snapshot of the join logs given a range of time for servers. It was

Miu 2 Aug 29, 2022
Asynchronous Yandex.Predictor API wrapper for Kotlin/JVM.

Asynchronous Yandex.Predictor API wrapper for Kotlin/JVM.

Mikhail Titov 2 Jun 27, 2022
Vanilla Music Player for Android (abandoned). Visit https://github.com/vanilla-music/vanilla for an actively developed fork

Translating You can help translate here. If your language isn't on the list, open an issue and I can add it. Building To build you will need: A Java c

Chris Eby 154 Dec 9, 2022
Fork from AntiZhaPian , upgrade to add more customizeable info

Fork from AntiZhaPian , upgrade to add more customizeable info

Noob Zhang 14 Nov 29, 2022
Retracer is a high performance, and near realtime REST API which used for Java/Android stack trace retracing by R8

Retracer is a high performance, and near realtime REST API which used for Java/Android stack trace retracing by R8 Getting Started docker

Johnson Lee 3 Aug 21, 2022
A handy phone call manager with phonebook, number blocking and multi-SIM support

Simple Dialer A lightweight app for handling your calls, no matter where are you. Comes with a handy call log for easy call initiation. There is a qui

Simple Mobile Tools 443 Jan 6, 2023
A multi-modular Gradle project that encapsulates various modules to learn Kotlin language, tools and frameworks.

KotlinLearn This is a gradle project for the sole basis of exploring and learning Kotlin language, tools and frameworks. The root project wil encapsul

Victor Kiprop 2 Oct 10, 2021
This project shows trending github repositories using MVI (Model View Intent) using kotlin flows and multi module clean architecture

GithubTrendingMVIFlow Build Architecture: This project shows trending github repositories using MVI (Model View Intent) using kotlin flows and multi m

Zulqurnain Haider 0 Jun 2, 2022
A multi-platform Collins Dictionary client, supports for Desktop(Windows/Linux/MacOS) and Android.

Collins Dictionary This is a multi-platform Collins Dictionary client, supports for Desktop(Windows/Linux/MacOS) and Android. For Linux and MacOS, ple

KonYaco 57 Dec 30, 2022
Multi Roots TreeView implementation for Android Platform with a lot of options and customization

TreeView Multi Roots TreeView implementation for Android Platform with a lot of options and customization Demo Features: - No Custom Views. - Easy use

Amr Hesham 74 May 10, 2022
This application was created internally for Aseman Company to evaluate the performance of its employee

AsemanTile-HRM This application was created internally for Aseman Company to evaluate the performance of its employees Uses Each of the managers of th

yasinrezaei 2 Mar 23, 2022
Powerful, comprehensice application performance management platform of Android

OutSiderAPM移动性能监控平台(持续开发中) 项目优势 实时掌控应用性能 降低性能定位成本 有效提升用户体验 监控模块 OutSiderAPM目前支持如下性能指标: 交互分析:分析Activity生命周期耗时,帮助提升页面打开速度,优化用户UI体验 网络请求分析:监控流量使用情况,发现并定位

jinx 336 Jan 3, 2023