#paper

1 messages ยท Page 12 of 1

rustic folioBOT
rustic folioBOT
#

This is working as intended. In the context of functions, vanilla commands are prioritized when the namespace isn't explicit. Command blocks have their behavior controlled by settings in commands.yml (you can add * to the override list to always prioritize vanilla). For players though, plugin commands overriding vanilla ones are intended. Whether the command is nested in /execute doesn't matter, what matters is the context the command is being parsed with (i.e. player, command block, function, or other misc. sources).

I understand this is different than the old/spigot behavior and you may need to adjust your advice depending on server types. However, this change is intentional as it expands functionality and reduces inconsistency in a way that should have been done in the 1.13 update. Now that we are better aligning command behavior with vanilla and other modded platforms, devs will need to be more considerate about whether they want to override vanilla by default (as is th...

rustic folioBOT
#

Expected behavior

When a BlockPlaceEvent is canceled it should display the same amount of item in the player inventory as if no block where placed.

Observed/Actual behavior

Currently in paper-1.21-40 item isn't visible in the player inventory after the BlockPlaceEvent have been canceled.
It's only a display bug, moving the item inside the inventory will show the right number of block back.

Steps/models to reproduce

  1. Create a simple plugin that cancel every BlockPlaceEvent.
  2. Try to place a block on an 1.21 server.

Plugin and Datapack List

I have tried with towny and flagsh, both have the same behavior.

Paper version

[21:32:38 INFO]: This server is running Paper version 1.21-40-master@b45d9b6 (2024-07-01T08:23:14Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version

Other

No response

rustic folioBOT
#

Closing this as it does not seem to have been an issue after the addition of the patch ๐Ÿ‘ If the issue persists on 1.19.3, feel free to comment.

was displayed to me in version 1.20.6-147-ver/1.20.6@e41d44f

[Tuinity Chunk System Worker #2/ERROR]: Detected setBlock in a far chunk [-124, 1], pos: BlockPos{x=-1972, y=-55, z=16}, status: minecraft:features, currently generating: ResourceKey[minecraft:worldgen/placed_feature / minecraft:large_dripstone]

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Expected behavior

To not see an error

Observed/Actual behavior

[08:26:20 ERROR]: [CustomizablePlayerModels] Exception while processing cpm packet: cpm_net:set_scl
java.lang.IllegalArgumentException: Invalid UUID string: minecraft:creative_mode_block_range
at java.base/java.util.UUID.fromString1(UUID.java:282) ~[?:?]
at java.base/java.util.UUID.fromString(UUID.java:260) ~[?:?]
at org.bukkit.attribute.AttributeModifier.getUniqueId(AttributeModifier.java:68) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
at CustomPlayerModels-Bukkit-0.6.17b.jar/com.tom.cpm.bukkit.AttributeScaler.lambda$setScale$0(AttributeScaler.java:26) ~[CustomPlayerModels-Bukkit-0.6.17b.jar:?]
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178) ~[?:?]
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708) ~[?:?]
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipel...

rustic folioBOT
rustic folioBOT
#

You are in the wrong class @MiniDigger It is here: https://github.com/tom5454/CustomPlayerModels/blob/0.6.17b/CustomPlayerModels-Bukkit/src/main/java/com/tom/cpm/bukkit/AttributeScaler.java#L26

There is API with NamespacedKeys for that, the plugin should use them in 1.21.

The old UUID based API is completely broken - class AttributeModifier:

    public UUID getUniqueId() {
        return UUID.fromString(getKey().toString());
    }

This is just impossible to work

rustic folioBOT
rustic folioBOT
#

Did those Devs ever fix this stupid LOGGING of un-natural movement. Man paper is about as dumb as it gets. They add these amazing feature like LOGGING or /back... but they fail to realize that when players use minecraft mechanics as intended the damn file gets filled up with stupid logs of dumb stuff we dont care about. Its not hurting thousands of people so why the HECK did you ever add this stupid LOGGING feature to begin with. We DO NOT USE IT. IT IS SPAMMING OUR COMPUTERS FULL OF CRAP LOGS. Like many of the other profesionals have stated here but the Paper Devs are rude as FCK as always. Im sick of these NERDS bald headed idiots. STOP GETTING MAD AT EVERY FUCKING QUESTION OR REQUEST AND START LISTENING YOU FUCKING RETARDS.

rustic folioBOT
rustic folioBOT
#

I'll +1 this - I'm somewhat disagree with the concept of how this was interpreted. I don't use the proxy for security - I use it so players don't get disconnected. This is on two different servers, one remote, one local - the IP has to be public otherwise the proxy can't connect. Sure, I could setup firewall rules that only let the proxy connect, but this is also on a home internet connection - it's not based in a datacenter with all of those tools in front of me. Players are running into this error when trying to connect via the old IP - this should be customizable.

#

exposing the backend servers incurs a risk, especially when using less secure forwarding modes. For velocity forwarding this is generally not as huge of a risk given the secret, but, it's generally not a use case of people leaving this stuff exposed to the web that we want to support.

I'm not 100% against having a config message for velocity mode (and only velocity mode), but, leaving your backends exposed to the public was not exactly a "we should cater for people doing this" outside of providing a useful warning other than just terminating the connection with nothing identifiable to support.

rustic folioBOT
rustic folioBOT
rustic folioBOT
#
[PaperMC/Paper] New branch created: moar
#
[PaperMC/Paper] branch deleted: moar
rustic folioBOT
rustic folioBOT
#

Expected behavior

Respawning being possible

Observed/Actual behavior

Exception is thrown and player freezes

[15:50:21 ERROR]: Failed to handle packet net.minecraft.network.protocol.game.ServerboundClientCommandPacket@5b144982, suppressing error
java.lang.NullPointerException: Cannot invoke "org.bukkit.Location.getBlockX()" because "location" is null
        at net.minecraft.server.players.PlayerList.respawn(PlayerList.java:868) ~[paper-1.21.jar:1.21-42-b89e6a0]
        at net.minecraft.server.players.PlayerList.respawn(PlayerList.java:804) ~[paper-1.21.jar:1.21-42-b89e6a0]
        at net.minecraft.server.network.ServerGamePacketListenerImpl.handleClientCommand(ServerGamePacketListenerImpl.java:2851) ~[paper-1.21.jar:1.21-42-b89e6a0]
        at net.minecraft.network.protocol.game.ServerboundClientCommandPacket.handle(ServerboundClientCommandPacket.java:33) ~[paper-1.21.jar:1.21-42-b89e6a0]
        at net.minecraft.network.protocol.game.ServerboundClientCommandP...
#

Given concerns about the new entity stacks being able to teleport thing, I tested an older design for a sand duper and I'm unable to reproduce this issue running Paper version 42. This attached design works dupes sand both in singleplayer and on the Paper server, running no plugins or datapacks, with the allow-unsage-end-portal-teleportation option set to true.
12GT Sand Duper by Scorpio.zip

rustic folioBOT
rustic folioBOT
#

Is your feature request related to a problem?

It is related to a bug reported to Jira(https://bugs.mojang.com/browse/MC-103995).
unbreaking item can't combine with another item without only enchantment books.

Describe the solution you'd like.

I want to (unbreaking) item-1 + item-2 can be possible on anvil that I can move the enchantments in the item-2.

Describe alternatives you've considered.

I think there's not alternatives about this. because it is a problem that cannot be realized in general because it has not been fixed even though it has been confirmed as a bug.

Other

No response

rustic folioBOT
#

Expected behavior

When I type something or paste something, all characters get accepted.

Observed/Actual behavior

Input will randomly not be accepted - this is anything from me typing to me hitting the enter key to hitting delete.

Steps/models to reproduce

I'm not sure what is applicable, so here is all possibly relevant information:

Java Version

openjdk version "22.0.1" 2024-04-16
OpenJDK Runtime Environment (build 22.0.1+8-16)
OpenJDK 64-Bit Server VM (build 22.0.1+8-16, mixed mode, sharing)

OS Information

OS Name: Microsoft Windows 10 Home
Version: 10.0.19045 Build 19045

Plugin and Datapack List

Plugins

> pl
[20:42:47 INFO]: Server Plugins (0):

Datapacks

> datapack list
[20:43:28 INFO]: There are 2 data pack(s) enabled: [vanilla (built-in)], [file/bukkit (world)]
[20:43:28 INFO]: There are no more data packs available

Paper version

NOTE: I know this isn't the latest version, bu...

rustic folioBOT
#

Expected behavior

If you die while receiving a potion effect that affects an attribute, the potion effect will disappear, but the affected attribute will not be reset.

Observed/Actual behavior

When you die while receiving the minecraft:health_boost effect, the effect disappears, but the minecraft:generic.max_health attribute is not reset.
The minecraft:jump_boost effect also does not reset the minecraft:generic.safe_fall_distance attribute when it dies.

Steps/models to reproduce

https://github.com/PaperMC/Paper/assets/174780878/48c7e39f-8122-4333-aa38-5c507c99da5c

Plugin and Datapack List

It also happens on a newly created server

Paper version

This server is running Paper version 1.21-40-master@b45d9b6 (2024-07-01T08:23:14Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are 4 version(s) behind
Download the new version at: https://papermc.io/downloads/paper
Previous version: 1.20.6-138-906df69 (MC: 1.20.6)

Other

When you die under the ...

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Expected behavior

I'm not sure if it's a paper bug, but it seems to be a server internal.

Observed/Actual behavior

Server Log

<details>
<summary>Log</summary>

[Server thread/WARN]: Failed to parse custom name from string 'Player's Kiste', discarding
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 13 path $
	at com.google.gson.JsonParser.parseReader(JsonParser.java:76) ~[gson-2.10.1.jar:?]
	at com.google.gson.JsonParser.parseString(JsonParser.java:51) ~[gson-2.10.1.jar:?]
	at net.minecraft.network.chat.Component$Serializer.fromJson(Component.java:304) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
	at net.minecraft.world.level.block.entity.BlockEntity.parseCustomNameSafe(BlockEntity.java:365) ~[paper-1.20.6.jar:1.20.6-147-e41d44f]
	at net.minecraft.world.level.block.entity.BaseContainerBlockEntity.loadAdditional(BaseContainerBlockEntity.java:42) ~[p...
rustic folioBOT
#

Seems like a different issue

On Fri, Jul 5, 2024, 8:40โ€ฏAM deltaspirit1 @.***> wrote:

Im trying to build a creeper farm but I cant because my cats wont teleport
to me. I cant even hear them.

โ€”
Reply to this email directly, view it on GitHub
https://github.com/PaperMC/Paper/issues/10965#issuecomment-2210997409,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMK4Z5FYKQL55IIMQ2FV32TZK2V5ZAVCNFSM6AAAAABJYNKEFKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJQHE4TONBQHE
.
You are receiving this because you commented.Message ID:
@.***>

rustic folioBOT
#

The plugin loaded an skull item stack that contained malformed data.
What you got there was a warning including the stack trace.
That is not a bug, it is just invalid data attempted to be loaded by the plugin.

The warning is safe to ignore to the degree that it will not break your server, however the skull items loaded will loose their custom name.
This smells like a general case of a plugin using spigots broken af BukkitObjectOutputStream (or to that extend YamlConfiguration) to store ItemStacks and hence the items were not ran through data converter when loaded in a new version.

rustic folioBOT
#

Expected behavior

Enchantments showing up that fit the given item.

Observed/Actual behavior

Enchantments showing up that do NOT fit the tool. As you can see in the picture, I gave the enchanting table a diamond pickaxe.
When looking at the possible enchants, I got to see Depth Strider I, Depth Strider II and Depth Strider IV.
image
But when actually enchanting the diamond pickaxe, it does get enchanted with enchants that fit the tool.
image
I also tested some other tools, weapons and armor, they all seem to work incorrectly.

Steps/models to reproduce

  1. Download: Paper version 1.21-44-master@8d91b85
  2. Start server.
  3. Take tools/armour/other weapons, put them in an enchanting table.

Plugin and Datapack List

![image](https://github.com/PaperMC/Paper/assets/70475924/456b097...

rustic folioBOT
#

Expected behavior

Only certain allowed items to be enchanted with allowed enchantments

Observed/Actual behavior

Every item can be enchanted with every enchantment

Steps/models to reproduce

Install latest Paper 1.21 #44

Plugin and Datapack List

  • N/A

Paper version

05.07 22:14:22 [Server] INFO This server is running Paper version 1.21-44-master@8d91b85 (2024-07-04T18:56:20Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
05.07 22:14:22 [Server] INFO You are running the latest version
05.07 22:14:22 [Server] INFO Previous version: 1.21-43-be8ac7a (MC: 1.21)

Other

<img width="488" alt="image" src="https://github.com/PaperMC/Paper/assets/171391033/d706c652-f5e8-408b-8d3f-ff212a8a2174">

<img width="488" alt="image" src="https://github.com/PaperMC/Paper/assets/171391033/c6c9900b-8fac-4c9e-b389-9f07cc882a0b">

#
[PaperMC/Paper] New branch created: upstream-update
#

Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
e86f4dc4 PR-1041: Improve getPlayer(String) docs to clarify it matches the name 9738f005 Fix spawner API documentation
69ebd9fd PR-1034: Add TrialSpawnerSpawnEvent
23cffd9c PR-973: Improve spawner API and add API for Trial Spawners 8bf19163 PR-1038: Clarify HumanEntity#openInventory(InventoryView) JavaDoc 1ff76351 SPIGOT-7732, SPIGOT-7786: Add freezing damage modifier 02161cb4 PR-1034: Add CreatureSpawnEvent.SpawnReason#TRIAL_SPAWNER f9cb6f34 SPIGOT-7777: All entity potion effects are removed on death 25d548eb PR-1031: Expose Creeper igniter
ccbf0915 SPIGOT-7770: Reserve spaces in shaped recipes for blank ingredients 17f7097c Clarify ambiguity around what is API
71714f0c Remove note from InventoryView JavaDoc
aaf49731 PR-1030: Deprecate more unused methods in UnsafeValues 3a9dc689 SPIGOT-7771:...

#

I am unable to reproduce this issue on Paper 1.21-44 on a fresh server with the steps you provided. Only the enchantments actually supported by the item are showing up.

Are you using an unmodified 1.21 client? It being only a display issue in the enchantment GUI but not affecting the actual item result makes me suspect some protocol translation issue (e.g. ViaVersion, a proxy like Velocity, a modded client etc).
Or did you have plugins or datapacks previously installed?

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#
[PaperMC/Paper] branch deleted: upstream-update
rustic folioBOT
rustic folioBOT
#
rustic folioBOT
#

Expected behavior

I would expect a CrafterCraftEvent to exist in order to hook into crafters. Failing this, I would assume there is a way to disable certain CraftingRecipes from working in crafters.

Observed/Actual behavior

There is no such API and it is not possible to blacklist recipes from working in crafters.

Steps/models to reproduce

Use a custom recipe plugin like EcoItems, CustomCrafting, or any plugin with custom item crafting / support for crafting recipes with stacked items (e.g. EcoItems, EcoArmor, etc.) and you will be able able to craft items without sufficient items.

Plugin and Datapack List

eco and EcoItems. Both are open-source, the crux of the crafting logic for eco can be found here

Paper version

1.21-38-master@1f5db50 (2024-06-27T20:15:58Z) (Implementing API version 1.21-R0.1-SNAPSHOT)

Other

There doesn't seem...

rustic folioBOT
#

I did more tries with I and, it still happend in paper 1.21.46.
It only happend on the 4 chunks around 0,0. That's probaby why the bug havent been found before.

https://youtu.be/iKC1voGuaDs

Steps to reproduce

  1. Download paper 1.21.46.
  2. Download towny (https://github.com/TownyAdvanced/Towny/releases) (appends with last version and last stable version)
  3. Start the paper server with default towny serttings (No build in wilderness)
  4. Give yourself 64 dirt block from the server console
  5. Try to place this near 0,0
rustic folioBOT
#

Expected behavior

Villager Trade with "minecraft:air" Ingredient.

Observed/Actual behavior

Having it fail since https://github.com/PaperMC/Paper/pull/10707 got merged.
https://github.com/PaperMC/Paper/blob/2fa5e0e0df6c2fa4ccb7ab80710d839dd8e0c5ce/patches/api/0470-Fix-issues-with-recipe-API.patch#L116

Steps/models to reproduce

Merchant merchant = Bukkit.createMerchant(title);
List<MerchantRecipe> recipes = new ArrayList<>();
MerchantRecipe merchantRecipe = new MerchantRecipe(new ItemStack(Material.DIRT), 99);
merchantRecipe.addIngredient(new ItemStack(Material.AIR));
recipes.add(merchantRecipe);
merchant.setRecipes(recipes);
player.openMerchant(merchant, true);

Plugin and Datapack List

Only a plugin containing the code written in "steps to reproduce "

Paper version

This server is running Paper version 1.20.6-148-ver/1.20.6@20f5165 (2024-07-02T15:37:33Z) (Implementing API version 1.20.6-R0.1-SNAPSHOT)
You are running the latest versio...

rustic folioBOT
#

Expected behavior

Not to spam the console

Observed/Actual behavior

After updating to Paper 1.21 build 46 from build 44 today, this suddenly spams the console and I have no idea what it is.

[09:39:59 WARN]: Sckaletz moved too quickly! -41000.9387649235,-69.36010013268248,106399.78292903556
[09:40:03 WARN]: Saving oversized chunk [-900, -1279] (4733297 bytes} to external file ./world2/entities/c.-900.-1279.mcc
[09:40:08 WARN]: Saving oversized chunk [-900, -1279] (4708078 bytes} to external file ./world2/entities/c.-900.-1279.mcc
[09:40:11 INFO]: Sckaletz issued server command: /gc
[09:40:13 WARN]: Saving oversized chunk [-900, -1279] (4733262 bytes} to external file ./world2/entities/c.-900.-1279.mcc
[09:40:19 WARN]: Saving oversized chunk [-900, -1279] (4708228 bytes} to external file ./world2/entities/c.-900.-1279.mcc
[09:40:51 WARN]: Saving oversized chunk [-900, -1279] (4733238 bytes} to external file ./world2/entities/c.-900.-1279.mcc
[09:40:55 INFO]: Sckale...

rustic folioBOT
#

Yes, this is an intended change.
The network codecs no longer allow you to pass an air item as an ingredient.
Doing so will fail when the offers are sent to the client (hence the API protects you from this with a precondition check).

There is nothing the server can do about this change, even if we were to change the server side of things, the client would error and disconnect when receiving such a merchant offer.

#

This adds an API for getting whether the current item stack that the player is holding is showing its name as a tooltip. It's important to note that this behavior can be configured via the accessbility settings, under notification time. This is still very useful for server owners, e.g. when you have a UI Overlay in your action bar, which is slightly shifted downwards using fonts, this can collide with the item's name tooltip. But instead, with this API, you can detect if it's shown and then raise the overlay a bit. Here is an example of this in action (not made by me):

https://github.com/PaperMC/Paper/assets/96977790/eaf40378-9e7f-494c-b96a-48596840c462

#

This adds an API for getting whether the current item stack that the player is holding is showing its name as a tooltip. It's important to note that this behavior can be configured via the accessbility settings, under notification time. This is still very useful for server owners, e.g. when you have a UI Overlay in your action bar, which is slightly shifted downwards using fonts, this can collide with the item's name tooltip. But instead, with this API, you can detect if it's shown and then raise the overlay a bit. Here is an example of this in action (not made by me):

https://github.com/PaperMC/Paper/assets/96977790/eaf40378-9e7f-494c-b96a-48596840c462

#

I can definitely see how important CrafterCraftItemEvent is for many servers. As stated by the OP, you can currently use crafters to get around PrepareCraftItemEvent logic, which many plugins use to eg. block custom items from being used in vanilla recipes.

Example:

@EventHandler(ignoreCancelled = true)
public void onCraftPrepare(final PrepareItemCraftEvent event) {
    // Skipping calls when the input does not match any recipe.
    if (event.getRecipe() == null)
        return;
    // Iterating over all items in the inventory matrix and "cancelling" the result as soon as custom item is found as an ingredient.
    for (final ItemStack item : event.getInventory().getMatrix()) {
        if (item != null && item.hasItemMeta() && item.getItemMeta().getCustomModelData() == 7) {
            event.getInventory().setResult(null);
            return;
        }
    }
}

I feel like CrafterCraftItemEvent would be mandatory to solve that particular case...

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Timings or Profile link

https://timings.aikar.co/dev/?id=1486df0306044b9c9f03f093383849c4

Description of issue

I was following this guide.
https://docs.papermc.io/paper/dev/registries

Everything worked and custom enchantment content appeared in /enchant, but custom enchantment content did not actually appear in the enchantment table.

Are there still technical limitations? Or is it just not working in the first place?

Is there no way to just apply it separately as an event handler?

Plugin and Datapack List

image

That's all ;(

Server config files

Paste configs or paste.gg link here!

Paper version

image

Other

No response

rustic folioBOT
#

Expected behavior

Aliases should take precedence over vanilla commands for commands executed by the player or console.

Observed/Actual behavior

Commands executed by the player or console are executed with vanilla commands taking precedence over aliases.

Steps/models to reproduce

public final class PaperPluginExample extends JavaPlugin {
    @Override
    public void onEnable() {
        getLifecycleManager().registerEventHandler(LifecycleEvents.COMMANDS, event -> {
            final var command = Commands.literal("msg")
                    .executes(context -> {
                        context.getSource().getSender().sendMessage("test");
                        return Command.SINGLE_SUCCESS;
                    }).build();
            event.registrar().register(command, List.of("tell", "w"));
        });
    }
}

Plugin and Datapack List

[01:26:28 INFO]: Server Plugins (2):
[01:26:28 INFO]: Paper Plugins:
[01:26:28 INFO]: - PaperPluginE...

rustic folioBOT
#

Expected behavior

Damage should be applied even without a direct entity.

Observed/Actual behavior

java.lang.NullPointerException: Cannot invoke "net.minecraft.world.entity.Entity.distanceToSqr(net.minecraft.world.entity.Entity)" because "entity2" is null
	at net.minecraft.world.entity.LivingEntity.hurt(LivingEntity.java:1537) ~[paper-server-userdev-1.21-R0.1-SNAPSHOT.jar:1.21-44-8d91b85]
	at net.minecraft.world.entity.player.Player.hurt(Player.java:1001) ~[paper-server-userdev-1.21-R0.1-SNAPSHOT.jar:1.21-44-8d91b85]
	at net.minecraft.server.level.ServerPlayer.hurt(ServerPlayer.java:1204) ~[paper-server-userdev-1.21-R0.1-SNAPSHOT.jar:1.21-44-8d91b85]
	at org.bukkit.craftbukkit.entity.CraftLivingEntity.damage(CraftLivingEntity.java:440) ~[paper-server-userdev-1.21-R0.1-SNAPSHOT.jar:1.21-44-8d91b85]
	at org.bukkit.craftbukkit.entity.CraftLivingEntity.damage(CraftLivingEntity.java:433) ~[paper-server-userdev-1.21-R0.1-SNAPSHOT.jar:1.21-44-8d91b85]
	at kitpvp-1.0.0-...
rustic folioBOT
#

Expected behavior

should be like vanilla, Ender Pearls that are thrown through portals teleport players to a different dimension than the one they are currently in

Observed/Actual behavior

throw enderpearl or drops to the portal ,and enderpearl or drops will pass through portal

Steps/models to reproduce

  1. build a nether portal in world or world_nether
  2. throw enderpearl or drops to the portal

Plugin and Datapack List

plugins
[01:26:29 INFO]: Server Plugins (0):
datapack list
[01:27:12 INFO]: There are 3 data pack(s) enabled: [vanilla (built-in)], [file/bukkit (world)], [paper (built-in)]
[01:27:12 INFO]: There are no more data packs available

Paper version

version
[01:27:38 INFO]: Checking version, please wait...
[01:27:39 INFO]: This server is running Paper version 1.21-46-master@2fa5e0e (2024-07-06T21:32:48Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version

Other

No response

rustic folioBOT
rustic folioBOT
#

Expected behavior

When a player dies I expect them to be able to click respawn and then respawn at their bed or at an essentials (the plugin) home.

Observed/Actual behavior

When a player dies, he or she cannot click respawn. They will not respawn and it will just bug, the button may appear clicked and you will get teleported somewhere but that's just void, you can't do anything unless you relog. Upon rejoining the server you get placed near your bed or home but only if you wait a few seconds before rejoining. If you rejoin too fast you'll simply spawn in this void again. During the entire time you're there and even a few seconds after you log out the player remains in the player list you can see when holding 'tab'. The bug isn't unplayable as you can see, we've managed up until now just by relogging, it's just very annoying having to rejoin all the time.

Steps/models to reproduce

Simply die in Minecraft, how this happens doesn't matter.

Plugin and Datapack Lis...

#

I can see now that in the console it does say build 42, that is weird because we had selected build 44 at that point, at this point the server is running build 47 but it still says 42 in the console. My apologies, I will have to open a ticket over at Shockbyte then since it is clearly already been noticed and fixed in Paper itself. Weird cuz the server doesn't update even when the paper.jar in the settings is correctly updated.
Thanks for the help.

rustic folioBOT
rustic folioBOT
#

yo descubri el error quitando estas opciones del mythicmobs
Level: 3
Profession: CARTOGRAPHER
Type: JUNGLE
al parecer el bug se da cuando intentas obligar a un villager a tener profecion o typo ala fuerza
es mejor quitar las opciones de lever, profession o type
esto ayudara a que el aldeano se genere mas rapido y no relentise el servidor!

rustic folioBOT
#

Expected behavior

Trial Spawner should be in active state if there are players nearby after cooldown ends, and in waiting_for_players state if there are no players to trigger it.

Observed/Actual behavior

Trial Spawner keeps switching state between waiting_for_players and inactive.

https://github.com/PaperMC/Paper/assets/147026380/2c8c035b-9f59-477f-9414-622251ad1478

Steps/models to reproduce

Using two accounts?I'm not sure if this is necessary.
Use one account to set up creative mode, place a Trial Spawner, and use a spawn egg to change the spawn type.
Use a second account to set up survival mode and be within range of the Trial Spawner.
The first account clears all Trial Spawner creatures and waits 30 minutes.(Trial Spawner Cooldown)
Then the Trial Spawner will keep flashing.

Plugin and Datapack List

plugins
[16:38:47 INFO]: Server Plugins (0):
datapack list
[16:38:59 INFO]: There are 3 data pack(s) enabled: [vanilla (built-in)], [file/bukki...

rustic folioBOT
rustic folioBOT
#
  1. REOBF_PRODUCTION not being existent would suggest outdated paperweight, or, you're not using paperweight
  2. REOBF_PROD would make the thing assume that it's spigot mapped, and would just be subjected to remapping

you would want to manually add the manifest entry to your jar in your build tool if you're not using paperweight, for further support, please use the discord or forums

#

Expected behavior

ItemMeta#hasRarity to return true for items with rarity and for set rarity to persist.

Observed/Actual behavior

ItemMeta#hasRarity returns false for items with rarity and set rarity does not persist.

Steps/models to reproduce

var testStack = ItemType.PLAYER_HEAD.createItemStack();
var testMeta = testStack.getItemMeta();

// this should print true as PLAYER_HEAD has uncommon rarity. It prints false.
System.out.println(testMeta.hasRarity());

testMeta.setRarity(ItemRarity.UNCOMMON);

// this should (and does) print true.
System.out.println(testMeta.hasRarity());

testStack.setItemMeta(testMeta);

// this should print true as we have set the rarity to uncommon. It prints false.
System.out.println(testStack.getItemMeta().hasRarity());

Plugin and Datapack List

[23:10:54 INFO]: Server Plugins (7):
[23:10:54 INFO]: Bukkit Plugins:
[23:10:54 INFO]:  - client-crasher, LuckPerms, test-plugin, MoDispenserMechanics, PlugMan...
#
  1. REOBF_PRODUCTION not being existent would suggest outdated paperweight, or, you're not using paperweight
  2. REOBF_PROD would make the thing spigot mapped, and would just be subjected to remapping

you would want to manually add the manifest entry to your jar in your build tool if you're not using paperweight, for further support, please use the discord or forums

I am using paperweight(only added it to be able to exclude it_ but that manual manifest entry sounds like the better choice. I'll move to Discord :)

rustic folioBOT
#

Expected behavior

I want to see this
image
but it's 1.20.1 paper

Observed/Actual behavior

when i use 1.21 paper
image
I get some strange code...

i'm using kotlin but
java equal

Steps/models to reproduce

i just want to use 1.21 Material

Is there anything else except waiting?

Plugin and Datapack List

it's not server error

Paper version

it's not server issue

Other

No response

#

I think this works as intended the itemmeta representation is flawed and outdated since the 1.20.5 and only represent explicit component set on the patch. Since the rarity of a player head is already uncommon on the item itself (its prototype). Setting it on the patch will just revert to the prototype value. In the future with the item data component api you could do: testStack.hasData(DataComponentTypes.RARITY) to check if the component is set on the patch or the prototype.

You can see that with the give command too with /give @s minecraft:player_head[minecraft:rarity=uncommon] the component doesn't appear when you do /paper dumpitem and the only way to see implicit component is via /paper dumpitem all

rustic folioBOT
#

Can't reproduce on 62ed302:

// Player that has joined before logs "NoahvdAa"
this.getLogger().info(Bukkit.getOfflinePlayer(UUID.fromString("7c4538b6-fa95-4bb5-982f-f42ba206d4f5")).getName());
// Player that hasn't joined before logs null
this.getLogger().info(Bukkit.getOfflinePlayer(UUID.fromString("436fdbb2-81d2-4e8b-aaed-75ab6058f77e")).getName());

Can you still reproduce this and if so, what do your config files and code look like?

#

Expected behavior

Players taking regular damage, knockback and having the regular damage tick while being hit while having absorption hearts (from Golden Apples/Enchanted Golden Apples)

Observed/Actual behavior

Players taking regular damage but having 0 knockback and no damage tick while being hit while having absorption hearts. Since it has no damage tick, it can be used to spam-click and destroy a full netherite helmet with 1 enchanted golden apple.

Steps/models to reproduce

Two players: Player 1 and Player 2.

  1. Make server be Paper 1.21 on Build 47
  2. Make player 2 eat a Golden Apple/Enchanted Golden Apple (or anything that may give absorption, even custom coded items)
  3. Attack player 2 using player 1 who has any item/weapon. Player 2 will not take knockback and not have a damage tick, but they will take damage (you can check this using a health indicator).
  4. You can further see the no damage tick by having player 2 wear full netherite armor, while player ...
rustic folioBOT
#

The logic in place to prevent players from processing a damage tick/knockback/etc when hit with 0 damage incorrectly used the damage events final damage value, which is reduced by absorption.

Instead, use the event's "raw damage", e.g. the amount passed to hurt, in order to determine if the damage tick should be skipped. This still allows plugins to change the damage to a non-zero value and properly damage ticks the player in such a case, but correctly processes the damage tick in cases where the original damage is non zero but the actual damage is.

Closes: #11042

rustic folioBOT
#

Expected behavior

EntityDamageByEntityEvent should be called 1x per dmg received on player. if i know well (as experienced) maximum 1 instance of damage should taken by player per every half second no matter how many enemy attacks at the same time (at least this was till 1.21 / 8d91b85Prioritize vanilla commands in function parsing (#11011)).

Observed/Actual behavior

EntityDamageByEntityEvent called multiple times if more enemy attack even this happens when 1 attack does dmg only.

Steps/models to reproduce

Let multiple enemies attack at the same time. 2 attacks registered / sec as received dmg, but EntityDamageByEntityEvent called way more times. This happens since 1.21 4d20922Updated Upstream (Bukkit/CraftBukkit/Spigot) (#11024) update.
I made a picture, where red numbers "dmg taken" calculated by EntityDamageByEntityEvent in my plugin. that 4 red number happened under 0.5 sec.
![bug](https://github.com/PaperMC/Paper/assets/36733395/7344b9e3-2bd6-4a6f-9c1b-ef677...

rustic folioBOT
rustic folioBOT
#
[PaperMC/Paper] New branch created: basiccommand-builder
rustic folioBOT
#

ab2a85a [ci skip] Clarify var entry in contributing file - kennytv
f2512b1 Print data component type on encoding error - kennytv
1b67e02 Fix entity tracker desync when new players are ... - Spottedleaf
cc29d2b Invalidate PathTypeCache when pathfinding updat... - Spottedleaf
b56e92f Fix chunk data version check not running in chu... - Spottedleaf
2df1dac Fix DataConverter ConverterParticleToNBT.parseP... - Earthcomputer
8748ae1 Use MCDataConverter instead of raw convert call... - Spottedleaf
7f1a154 Add validation to player profile and properties... - kennytv
4fd58a1 Add conversion for summon command - jpenilla

rustic folioBOT
#

Yeah that is. But the return values aren't.
Perhaps include the same prototype check when getRarity is called. hasRarity seems redundant. Unless reserved for explicitly set rarity but then you'd run into the issue of rarity not being set when it matches the rarity of the prototype so it doesn't really make sense to have that method return anything other than true.

For instance: say I'm making a chat-item plugin and I want to apply the color of the item's rarity to it's translation component/item name/display name depending on what is set. Right now it doesn't seem possible to get the default rarity of the item. And the deprecated method Material#getRarity fails entirely and always, as it calls getItemMeta#getRarity#name, and of course a newly created ItemStack doesn't have any explicitly set rarity, so the method literally blows up for all 1333 items in the game that you can call it on.

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Updated to jline-terminal 3.26.1 - jline, however, has deprecated their jansi provider,
and so, we're going back to JNA. FFM looks interesting, but, might not work on java 21,
and, seems to requore some additional java flags to open stuff up to allow it to work,
however, seemed to work without on macOS?

It might still look like it works, but it won't use the FFM terminal implementation. While there is no restriction from the JVM side to enable native access yet (see JEP 472 for first steps into that direction), JLine added a check to ensure that native access is enabled (which implicitly falls back to the another provider if it's not):

https://github.com/jline/jline3/blob/9489e1b15bd1ee9dd87393aeec7fc5489fbc8a09/terminal-ffm/src/main/java/org/jline/terminal/impl/ffm/FfmTerminalProvider.java#L34-L39

#

Yea, I guess I didn't notice it didn't enable, because *nix is pretty much in an "it just works", it's only really Windows which bites us in the ass here.

I think that in the long term, it will probably be a case of "if you want anything bar a basic terminal on Windows, run with this flag" type of deal, I don't care for the time sink that has been proper terminal support for windows anymore, at least the changes here should give us a situation which isn't entirely broken for now.

I don't have hardware that is running Windows, and spinning up VM instances to toy around with a platform that doesn't even hold 15% of the market share seems like an entire waste of time considering it's the platform that gives us the most hassle here.

rustic folioBOT
#
[PaperMC/Paper] New branch created: basiccommand-basicpermission
rustic folioBOT
#

Expected behavior

PlayerItemConsumeEvent#getItem should return the ItemStack that was consumed
PlayerItemConsumeEvent#getReplacement should by default return the FoodComponent#getUsingConvertsTo ItemStack

Observed/Actual behavior

PlayerItemConsumeEvent#getItem returns the FoodComponent#getUsingConvertsTo
PlayerItemConsumeEvent#getReplacement returns null

Steps/models to reproduce

  1. Get Item with FoodComponent
  2. Eat it whilst listening to PlayerConsumeItemEvent

https://github.com/PaperMC/Paper/assets/62521371/4e601f9a-30d0-4d2e-8a22-4aab2132c6ad

Plugin and Datapack List

[22:44:59 INFO]: Server Plugins (5):
[22:44:59 INFO]: Bukkit Plugins:
[22:44:59 INFO]:  - HMCColor, LuckPerms, Oraxen, PlaceholderAPI, ProtocolLib
> datapack list
[22:45:13 INFO]: There are 4 data pack(s) enabled: [vanilla (built-in)], [file/bukkit (world)], [file/oraxen_custom_armor (world)], [paper (built-in)]
[22:45:13 INFO]: There are no more data packs ...
rustic folioBOT
rustic folioBOT
#

Is your feature request related to a problem?

In spigot.yml you can configure some Attribute limit like this
ๅฑๅน•ๆˆชๅ›พ 2024-07-10 120928
I want to know can more Attribute limit could be added suchh as Armor, Jump Strength etc.

Describe the solution you'd like.

Add more Attribute limit configuration

Describe alternatives you've considered.

For Armor, when Player or some entities received a great damage, create a plugin to deal with this (compute real damage like vanilla Armor)
I do not think this is a good idea though

Other

No response

rustic folioBOT
#

First to narrow the scope of this , turn on Hit-boxes to see if the entities are there and not phantom sounds from lag. No Hit-boxes , then no entities.

Hitboxes are regions that describe how much space an entity takes up, which can be shown by pressing the F3 + B keys. โ€Œ [Java Edition only] When they are shown, a white outline will be seen showing the location of the entity and the space it takes up.

rustic folioBOT
#

Expected behavior

When removing the lodestone properties of a lodestone compass it should become a compass.

Observed/Actual behavior

The compass remains a lodestone compass when trying to set it back to a compass.

Steps/models to reproduce

ItemStack compass = new ItemStack(Material.COMPASS, 1);
CompassMeta compassMeta = (CompassMeta)compass.getItemMeta();
compassMeta.setLodestoneTracked(false);
compass.setItemMeta(compassMeta);
player.getInventory().addItem(compass);

ItemStack compassFromInv = getPlayerCompass(player);
CompassMeta compassFromInvMeta = (CompassMeta)compassFromInv.getItemMeta();
compassFromInvMeta.setLodestone(null);
compassFromInvMeta.setLodestoneTracked(true);
compassFromInv.setItemMeta(compassFromInvMeta);

Plugin and Datapack List

> plugins
[12:46:52 INFO]: Server Plugins (1):
[12:46:52 INFO]: Bukkit Plugins:
[12:46:52 INFO]:  - PlayerTracker

Paper version

> version
[12:44:14 INFO]: Checking v...
rustic folioBOT
#

First to narrow the scope of this , turn on Hit-boxes to see if the entities are there and not phantom sounds from lag. No Hit-boxes , then no entities.

Hitboxes are regions that describe how much space an entity takes up, which can be shown by pressing the F3 + B keys. โ€Œ [Java Edition only] When they are shown, a white outline will be seen showing the location of the entity and the space it takes up.

Just checked, no hitboxes are visible but I still here the sounds of the cats. I'll attach a video in the root of this thread.

rustic folioBOT
#

First to narrow the scope of this , turn on Hit-boxes to see if the entities are there and not phantom sounds from lag. No Hit-boxes , then no entities.
Hitboxes are regions that describe how much space an entity takes up, which can be shown by pressing the F3 + B keys. โ€Œ [Java Edition only] When they are shown, a white outline will be seen showing the location of the entity and the space it takes up.

Just checked, no hitboxes are visible but I still here the sounds of the cats. I'll attach a video in the root of this thread.

Try these 2 things, to rule out entities did not materialize underground . Name the cat with a tag, the tags will be visible if a cat is there and put yourself in spectator mode to see underground. sounds can be heard from a couple of chunks away and may be in a cave. I'm more inclined to believe in a entity tracking issue, since there is no hit-box for your cats in view.

#

Expected behavior

No error, correct handling of null as described in the javadocs.

Observed/Actual behavior

java.lang.NullPointerException: Cannot read the array length because "<local2>" is null
        at io.papermc.paper.pluginremap.reflect.PaperReflection.parameterDescriptor(PaperReflection.java:147) ~[paper-1.21.jar:1.21-9-4ea696f]
        at io.papermc.paper.pluginremap.reflect.PaperReflection.strippedMethodKey(PaperReflection.java:141) ~[paper-1.21.jar:1.21-9-4ea696f]
        at io.papermc.paper.pluginremap.reflect.PaperReflection.findMappedMethodName(PaperReflection.java:94) ~[paper-1.21.jar:1.21-9-4ea696f]
        at io.papermc.paper.pluginremap.reflect.PaperReflection.mapMethodName(PaperReflection.java:71) ~[paper-1.21.jar:1.21-9-4ea696f]
        at io.papermc.reflectionrewriter.runtime.AbstractDefaultRulesRefle...
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

I tested and found the cat had fallen though ground or floor of builds but was nearby. upto 1 to 2 chunks away in cave or fallen though blocks. . Must be a setting to keep pets closer to you. Anyway they are there just not close to you

The cats are definitely still there. Relogging makes them appear again and they're right next to me. You can also hear the steps and meows very close to you. I've attached yet another video in the top message showing this behaviour.

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

It is weird cause my old server host used to not work with spark and it would crash on startup each time, but my new server host works perfectly with it. I made this issue on the spark github, but it was never addressed. https://github.com/lucko/spark/issues/377. The server host it would crash on was Berrybyte and the server host it works on is Surf Host with both being very small server hosts. I have tested running spark on my own computer with a backup of my server and it works perfectly fine so it must have something to do with how certain server hosts are set up.

rustic folioBOT
#

Expected behavior

image

Observed/Actual behavior

image

Steps/models to reproduce

Type any command that doesn't exist

Plugin and Datapack List

0 plugins

Paper version

This server is running Paper version 1.21-50-master@20889d0 (2024-07-10T16:28:03Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.21-47-62ed302 (MC: 1.21)

Other

No response

#

Expected behavior

image
(On lower server versions works fine)

Observed/Actual behavior

image

Steps/models to reproduce

Set a custom message with underline or bold

Plugin and Datapack List

0 plugins

Paper version

This server is running Paper version 1.21-50-master@20889d0 (2024-07-10T16:28:03Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.21-47-62ed302 (MC: 1.21)

Other

No response

rustic folioBOT
rustic folioBOT
#

Expected behavior

When plugin sets damage value for EntityDamageEvent to 0 but doesn't cancell event. Player should still get knockback and arrows should be stuck in player.

Observed/Actual behavior

Arrows bounce of players as if event was cancelled in previous versions and player reveive no knockback form 0 damage hits. (looks like it works for other mobs)

Steps/models to reproduce

With extra plugin create listener and set 0 damage for each EntityDamageEvent. Normal mobs will still be knocked back on hits (while unkillable) but player will behave as event was cancelled instead.

Plugin and Datapack List

[10:26:34 INFO]: Server Plugins (13):
[10:26:34 INFO]: Bukkit Plugins:
[10:26:34 INFO]: - *JoinFullServer, Multiverse-Core, Multiverse-Inventories, Multiverse-Portals, NoChatReports, *PermissionsEx, PexTabCompleter, ProtocolLib, *SimplePrefix-Reloaded, TreasureChestX
[10:26:34 INFO]: *VoidWorld, WorldEdit, WorldGuard

[10:26:54 INFO]: There are 3 data p...

#

Stack trace

https://pastes.dev/1efChsblav

Plugin and Datapack List

BlockTracker - https://cdn.modrinth.com/data/gOtvzAQX/versions/m1gTN0dL/BlockTracker-1.0.6.jar
SuperiorSkyblock2 - https://hub.bg-software.com/job/SuperiorSkyblock2 - Dev Builds/260/artifact/target/SuperiorSkyblock2-2024.1-b260.jar

Actions to reproduce (if known)

  • No server config changes.
  • Create an island with /island create test normal
  • Place random 5 blocks (can be in creative)
  • Leave the server
  • Don't stop it - wait 10 seconds for chunk unload

Paper version

> ver
[10:50:07 INFO]: Checking version, please wait...
[10:50:07 INFO]: This server is running Paper version 1.21-50-master@20889d0 (2024-07-10T16:28:03Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version

Other

Works correctly on latest Paper 1.20.6 build no. 148 using the same plugin versions.

BlockTracker related code: https://github.com/Krakenied/BlockTracker/blo...

#

Yea so, this is a bit annoying.
Technically, players do not process damage ticks from damage that is 0.

This was, for the longest time, a spigot and hence paper bug, which was fix recently by not processing damage of value 0.

However, given plugins can still prevent damage from actually applying by simply cancelling the event.
I am unsure if the inconsistency of "plugin sets damage to 0, but still process the event" is worth it, but I think it may be.
Some more input from the team here would be great tho.

rustic folioBOT
#

I think it's weird as then player is handled diffrently as other entities, where 0 damage event still triggers. Mayble that's why snowballs don't apply knockback to players at this point in time?
But still this is an issue for me, as I rellied on this mechanic for my plugin where I rewrite damage system completelly. But maybe there could be some middle ground, as probably reverting a bug because of plugin regression is not the best solution. If EntityDamageEvent would get new method "void setFinalDamage(double damage)" that would override all damage reduction calculations and just reduce player health by set amount. Then I would not have to resort to setting damage inside event to 0 and then reducing player health.
Another method that would help me would be "void setProcessKnockbackAndArrowConsumption(boolean state)". Name to be discussed properly. And that method would force knockback on Players and make arrow actually hit him even when damage set is equal to 0. (There are still ...

rustic folioBOT
#

I created a block platform 4 x 4 , 1 block thick in the sky. /tp to that platform to get the cat to follow. I can hear the cat, but can not see it, so i begin placing blocks around the edge, 3 high and spiral inward placing blocks, until i found a spot where i could not place a block. The ghost cat is now in a hole 3 block deep. It has no hit-box or tag, but cries out when anvils are dropped in the hole. The cat is having a out of body experience , Its A.I is there but not its Physical hit-box or tag . This is reproducible and may effect other entities. I did not need to log off, just move from place to place and it soon caught up in its rendered form.

rustic folioBOT
#

I still think attaching a perm node should be mandatory. We need to actively discourage using manual perm checks for root commands, since doing that over using this new method will still send the command, so players can tab complete it.
A part of me always dies whenever I see people installing tab block plugins or straight up disable tab complete in order to hide commands players don't have permission to run but still see in tab completion.
In my ideal world every root command has a perm node attached to it and it a command should be used by e everyone by default the permission to that command should just be granted by default, either by registering it in the plugin.yml or by registering it in code.

rustic folioBOT
#

Expected behavior

When a Shulker Box is broken, the values in its persistent data container are in the dropped ItemStack's block state.

Observed/Actual behavior

The values are not present.

Steps/models to reproduce

  • Set some key-value pair in a Shulker Box's PersistentDataContainer; I achieved this via a command:
    Block block = player.getTargetBlockExact(10); if (block != null && block.getState() instanceof ShulkerBox box) { box.getPersistentDataContainer().set(new NamespacedKey("test", "thing"), PersistentDataType.STRING, "Hello"); box.update(); }
  • Use /data get block <coordinates> to verify the data has been written
  • Break the block
  • Use /data get entity @e[type=item,distance=..6,limit=1] Item to verify the data has not been kept.

Plugin and Datapack List

  • The plugin created to reproduce the issue.

Paper version

This server is running Paper version 1.20.6-148-ver/1.20.6@20f5165 (2024-07-02T15:37:33Z) (Implementing API vers...

rustic folioBOT
#

Only skip the damage tick logic on player entities if the original damage was zero and was not modified by plugins down the line.

This way all the following three scenarios trigger the damage tick

a) vanilla damage was 0, plugin set it to non zero
b) vanilla damage was non zero, plugin did not modify it
c) vanilla damage was non zero, plugin set it to zero.

Regarding case c, the argument here is that EntityDamageEvent#setDamage should not modify the damage tick logic.

Resolves: #11055

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Stack trace

https://pastebin.com/YDWbF57g

Plugin and Datapack List

No plugins and default datapacks, stack trace out i used spark, in fact, with or without it, it could cause blocking

Actions to reproduce (if known)

  1. Start paper
  2. Trigger an explosion (e.g. /summon tnt)

Paper version

This server is running Paper version 1.21-57-master@0e02aa5 (2024-07-11T19:34:02Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.21-50-20889d0 (MC: 1.21)

Other

No response

rustic folioBOT
#

Is your feature request related to a problem?

Add new areas affected by lag compensation

Describe the solution you'd like.

Add new areas affected by lag compensation, such as these:

Item pickup delay
Block entity tick acceleration
Portal delay
Sleeping delay
Potion delay
Fluid spread speed

Describe alternatives you've considered.

https://github.com/snackbag/tt20

Other

No response

rustic folioBOT
rustic folioBOT
#
[PaperMC/Paper] branch deleted: fix/explosions
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Stack trace

Hello,

I would like to ask for directions in resolving a client issue. He's experienced a server crash with about 10 players using Paper 1.20.6.

This error came up first:

[00:34:41] [Paper Watchdog Thread/ERROR]: The server has not responded for 10 seconds! Creating thread dump
[00:34:41] [Paper Watchdog Thread/ERROR]: ------------------------------
[00:34:41] [Paper Watchdog Thread/ERROR]: Server thread dump (Look for plugins here before reporting to Paper!):
[00:34:42] [Paper Watchdog Thread/ERROR]: ------------------------------
[00:34:42] [Paper Watchdog Thread/ERROR]: Current Thread: Server thread
[00:34:42] [Paper Watchdog Thread/ERROR]: 	PID: 37 | Suspended: false | Native: false | State: RUNNABLE
[00:34:42] [Paper Watchdog Thread/ERROR]: 	Stack:
[00:34:42] [Paper Watchdog Thread/ERROR]: 		com.destroystokyo.paper.util.maplist.IBlockDataList.getBlockDataFromRaw(IBlockDataList.java:33)
[00:34:42] [Paper Watchdog Thread/ERROR]: 		net.minecr...
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Stack trace

[04:13:51] [Paper Watchdog Thread/ERROR]: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH - 1.21-57-0e02aa5 (MC: 1.21) ---
[04:13:51] [Paper Watchdog Thread/ERROR]: The server has not responded for 10 seconds! Creating thread dump
[04:13:51] [Paper Watchdog Thread/ERROR]: ------------------------------
[04:13:51] [Paper Watchdog Thread/ERROR]: Server thread dump (Look for plugins here before reporting to Paper!):
[04:13:51] [Paper Watchdog Thread/ERROR]: Ticking entity: minecraft:player, entity class: net.minecraft.server.level.ServerPlayer
[04:13:51] [Paper Watchdog Thread/ERROR]: Entity status: removed: false, valid: true, alive: true, is passenger: false
[04:13:51] [Paper Watchdog Thread/ERROR]: Entity UUID: e7c91a5b-e9cd-37dd-87ad-66fcbbb7ad72
[04:13:51] [Paper Watchdog Thread/ERROR]: Position: world: 'world_the_end' at location (36.10833162332814, 101.74405402714046, 25.331300356583597)
[04:13:51] [Paper Watchdog Thread/ERROR]: Velocity:...

#

---- Minecraft Network Protocol Error Report ----
// It's the tubes, they're clogged!

Time: 2024-07-13 00:07:36
Description: Packet handling error

java.net.SocketException: Connection reset
at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:401)
at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:434)
at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:254)
at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132)
at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:357)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
at io.netty.channel.nio.NioEventLoop.run...

rustic folioBOT
rustic folioBOT
#

Expected behavior

Before https://github.com/PaperMC/paper/commit/4d20922b79f5b3976e240932d087357a3808fde4 creating a book with pages but without an author or title worked without issues

Observed/Actual behavior

After that commit when creating a book that has pages but without an author or title it can no longer encode the component correctly
https://paste.enginehub.org/uQZTHfDcR

Steps/models to reproduce

ItemStack book = new ItemStack(Material.WRITTEN_BOOK);
BookMeta meta = (BookMeta) book.getItemMeta();
meta.addPages(Component.text("awawawa"));
book.setItemMeta(meta);
e.getPlayer().getInventory().addItem(book);

Plugin and Datapack List

n/a

Paper version

Paper version 1.21-62-master@5a503d7

Other

It's a bit weird, because both setTitle() and setAuthor() are Nullable, and when the book doesn't have any pages it's fine to not set them, but as soon as you add pages to the book those become required

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

So right now this probably has issues with the piercing enchantment (haven't tested but is very likely). before i however resolve that i would like to know what design we will be going forwards with. Lynx suggested instead of adding new methods to ProjectileUtil which return all entities in the range, we should do something similar to piercingIngoreEntityIds. I have tried to implement this for 1 or 2 of the Projectile Classes however i noticed that the diff is often even bigger/ just as big as before, we also have to clip entites more often with his implementation.

rustic folioBOT
#

Hey, how about adding a feature to change the max stack size for items at the core level? Third-party plugins often struggle with this, whether theyโ€™re using NMS or BukkitEvents. Plus, those plugins usually donโ€™t support creative mode! Patching the core to add this feature isnโ€™t something everyone wants to do, especially since it requires more than beginner programming skills.

https://github.com/user-attachments/assets/ea9f17f5-d217-4eac-9774-dfaf98a7d620

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Stack trace

---- Minecraft Crash Report ----
// Don't do that.

Time: 2024-07-14 18:22:50
Description: Exception in server tick loop

java.lang.RuntimeException: java.io.IOException: The process cannot access the file because another process has locked a portion of the file
at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:601)
at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:515)
at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:327)
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1220)
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:330)
at java.base/java.lang.Thread.run(Thread.java:1570)
Caused by: java.io.IOException: The process cannot access the file because another process has locked a portion of the file
at java.base/sun.nio.ch.FileDispatcherImpl.write0(Native Method)
at java.base/sun.nio.ch.FileDispatcherImpl.write(FileDis...

rustic folioBOT
#

Stack trace

[17:42:30] [Paper Watchdog Thread/INFO]: Stopping main thread (Ignore any thread death message you see! - DO NOT REPORT THREAD DEATH TO PAPER)
[17:42:30] [Paper Watchdog Thread/INFO]: Stopping server
[17:42:30] [Paper Watchdog Thread/INFO]: Saving players
[17:42:30] [Paper Watchdog Thread/WARN]: Asynchronous Save Players! Blocking thread until it returns 
java.lang.IllegalStateException: null
	at io.papermc.paper.util.MCUtil.ensureMain(MCUtil.java:350) [?:1.21-DEV-0e02aa5]
	at net.minecraft.server.players.PlayerList.h(PlayerList.java:1185) [?:1.21-DEV-0e02aa5]
	at net.minecraft.server.MinecraftServer.v(MinecraftServer.java:1060) [?:1.21-DEV-0e02aa5]
	at net.minecraft.server.dedicated.DedicatedServer.v(DedicatedServer.java:845) [?:1.21-DEV-0e02aa5]
	at net.minecraft.server.MinecraftServer.close(MinecraftServer.java:1006) [?:1.21-DEV-0e02aa5]
	at org.spigotmc.WatchdogThread.run(WatchdogThread.java:231) [?:1.21-DEV-0e02aa5]

Plugin and Datapac...

rustic folioBOT
#

Expected behavior

Monsters shouldn't move, unless I'm in 1 block distance from them. On Spigot, it seems to be much less reproducible. Yeah, I know it sounds weird. I haven't noticed the issue to affect animals, however it may be an incorrect assumption.

Observed/Actual behavior

Monsters move.

Steps/models to reproduce

    entity-activation-range:
      animals: 1
      monsters: 1
      raiders: 1
      misc: 1
      water: 1
      villagers: 1
      flying-monsters: 1
      wake-up-inactive:
        animals-max-per-tick: 0 # 4
        animals-every: 1200
        animals-for: 100
        monsters-max-per-tick: 0 # 8
        monsters-every: 400
        monsters-for: 100
        villagers-max-per-tick: 0 # 4
        villagers-every: 600
        villagers-for: 100
        flying-monsters-max-per-tick: 0 # 8
        flying-monsters-every: 200
        flying-monsters-for: 100
      villagers-work-immunity-after: 100
      villagers-work-immu...
#
[PaperMC/Paper] branch deleted: basiccommand-basicpermission
rustic folioBOT
rustic folioBOT
#

Expected behavior

1.20.4 compiled plugins should load, as paper api should be somewhat backwards compatable? The breakages here are just become spigot renamed the enum, no NMS or internals are being used

Observed/Actual behavior

java.lang.NoSuchFieldError: Class org.bukkit.enchantments.Enchantment does not have member field 'org.bukkit.enchantments.Enchantment PROTECTION_ENVIRONMENTAL'

java.lang.NoSuchFieldError: Class org.bukkit.potion.PotionEffectType does not have member field 'org.bukkit.potion.PotionEffectType INCREASE_DAMAGE'

Steps/models to reproduce

Compile a 1.20.4 plugin and try to use on 1.21

Plugin and Datapack List

N/A

Paper version

1.21 34a2917dccd1a39888c85badd7cf7aad7c44ff61

Other

No response

rustic folioBOT
#

Stack trace

paste your stack trace or a paste.gg link here!

https://pastebin.com/raw/ugmhWrUn

Plugin and Datapack List

/plugins Itemsadder protocolib lonelibs

Actions to reproduce (if known)

I changed server version to 1.20.4 to 1.20.1 and also changed spigot to paper. I backup the world file and paste it to the newer version of my server(1.20.1) and it's happened.

Paper version

/version git-Paper-22 (MC: 1.20.1)

Other

No response

rustic folioBOT
#

Expected behavior

Itemstack NBT from 1.20.4, once ran though datafixers, should correctly load in 1.21

Observed/Actual behavior

Here is the itemstack which a shulker in snbt form: https://pastebin.com/u94a4ZRZ
it is successfully parsed into a compound tag, then ran though ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convertTag(ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.ITEM_STACK, compound, dataVersion, Bukkit.getUnsafe().getDataVersion())

but then when net.minecraft.world.item.ItemStack.parse is called, the console gets this warning:
https://pastebin.com/5f2TR5Eq

I am not using bukkit unsafe store item as bytes, i am loading from snbt, but that loaded fine into the compound tag, the datafixers however are having issues making it 1.21 compatible it seems? I didn't experience this issue in 1.20.5 which is odd.

Steps/models to reproduce

Load a 1.20.4 itemstack

Plugin and Datapack List

N/A

Paper version

1.21 https:/...

rustic folioBOT
rustic folioBOT
#

Expected behavior

An itemstack serialized 1.20.4 should correctly load in 1.21 without errors.

Observed/Actual behavior

on 1.20.4:

Base64.getEncoder().encodeToString(Bukkit.getUnsafe().serializeItem(shulker))

the base64 string: https://0bin.net/paste/gCNq3q2J#fdoLN9dS1PAzhj8eBqeOrnp-xihURktdcDNq1nGLw4a

on 1.21
Bukkit.getUnsafe().deserializeItem(Base64.getDecoder().decode(string));

console error: https://0bin.net/paste/o2chIszJ#52v2olu-s1gmuI/T6IOWtt9OJp3CIgjIu7DgXVqxAyG

The item appears to deserialize correctly, but the console error is still printed, very odd.

Steps/models to reproduce

Encode an item using Bukkit.getUnsafe().serializeItem in 1.20.4

decode said item in 1.21

Plugin and Datapack List

N/A

Paper version

1.21 https://github.com/PaperMC/Paper/commit/34a2917dccd1a39888c85badd7cf7aad7c44ff61

Other

No response

rustic folioBOT
rustic folioBOT
#

Expected behavior

Papers jar remapper incorrectly renames
net.minecraft.server.level.ChunkMap$TrackedEntity
to
net.minecraft.server.level.ChunkTracker$TrackedEntity

"chunktracker" isn't mentioned in the paper jar, its called chunkmap, why is it remapping to chunktracker?
I was pulling my hair out for hours because of this weird error message:

java.lang.NoSuchFieldError: Class net.minecraft.world.entity.Entity does not have member field 'net.minecraft.server.level.ChunkTracker$TrackedEntity tracker'

in intellij it was referred to as chunkmap, dumping the fields at runtime its referred to as chunkmap, but for some reason in the remapped jars its referred to as chunktracker

How do i disable the paper jar remapper for a given plugin?

Observed/Actual behavior

.

Steps/models to reproduce

.

Plugin and Datapack List

.

Paper version

This server is running Paper version 1.21-DEV-master@34a2917 (2024-07-14T13:04:22Z) (Implementing API version 1.21-...

rustic folioBOT
#

This PR adds a new constructor to AttributeModifier that supports NamespacedKeys but does not require an EquipmentSlotGroup, instead defaulting to EquipmentSlotGroup.ANY.
This makes creating attribute modifiers less verbose whenever you want to add modifiers to players or other entities directly, as the slot group is useless in those cases anyway.

I've also fixed a Javadoc issue with getSlotGroup: its not nullable, and of course returns an EquipmentSlotGroup, not EquipmentSlot. Someone copy-pasted there.

I also squashed my previous transient modifier API into the existing modifier API patch and renamed it. This is the first time I have done this and it has created quite a lot of renamed patches. I hope this was the right way to do it.

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Expected behavior

Entitychangeblockevent should be called when weaving effect places cobwebs

Observed/Actual behavior

No events are called when weaving effect places cobwebs, meaning people can place cobweb in grief-protected regions etc.

Steps/models to reproduce

Look at code

Plugin and Datapack List

N/A

Paper version

This server is running Paper version 1.21-DEV-master@34a2917 (2024-07-14T13:04:22Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are 4 version(s) behind
Download the new version at: https://papermc.io/downloads/paper
Previous version: 1.21-63-2288e13 (MC: 1.21)

Other

No response

rustic folioBOT
#

As someone who does the things mentioned in the PR with the action bar, this is certainly very useful.

And it's clearly mentioned in the Javadocs that the server is limited in predicting it.
Maintenance cost should be very low too.

However maybe just exposing itemStackChangeTime directly would make more sense? Then that value could also be used for other things (though I am not sure what those could be)

rustic folioBOT
#

Adds an event fired when the crafter crafts an item. The event only exposes the recipe and the potential result for event modifications.

The PR does not contain a preparation related event along the lines of PrepareItemCraftEvent, as exposing the relative players in such an event is out of scope of the PR. It is also not necessary for plugins to prevent crafting specific items.

Future improvements to this event may include boolean flags to prevent items from being consumed, but this is also out of scope for the PR.

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Expected behavior

Using sendMessage() looped through all players should not cause the TPS to drop. (99% sure the issue comes from Paper, as this was tested with multiple plugins)

Observed/Actual behavior

any plugin that uses sendMessage() to all players drops the TPS of the server drastically, creating a 2 seconds "freeze" on the main thread, and show that the server is overloaded and running ~50 ticks behind. Sparks does not show said plugin in the report, at all, but removing the plugin(s) using this method fixes the TPS drop. (If there are no players but the plugin is configured to still loop through players and try to send messages, the server will still freeze for 2 seconds)

The weird thing is that this seems to only happen when the messages are sent every 5 minutes or more. Could this be a GC issue? Am I doing something wrong? A lot of plugins are using automated messages to all players like that, and they all cause the same TPS drop according to my tests.

S...

#

Stack trace

If i make a dimension with custom features all of the features work except for lakes, for some reason they attempt to get biome during world gen which causes server to crash: https://0bin.net/paste/GAqifVkm#KtLtjtDme8Jax0s4ld6TlCYsK7gX1WF3blXSScKNps4

It shouldn't be crashing when its trying to get the biome.

lakefeature.java:

if (blockState.getFluidState().is(FluidTags.WATER)) {
                for (int ab = 0; ab < 16; ab++) {
                    for (int ac = 0; ac < 16; ac++) {
                        int ad = 4;
                        BlockPos blockPos4 = blockPos.offset(ab, 4, ac);
                        if (worldGenLevel.getBiome(blockPos4).value().shouldFreeze(worldGenLevel, blockPos4, false) <-- here is where it blows up
                            && this.canReplaceBlock(worldGenLevel.getBlockState(blockPos4))) {
                            worldGenLevel.setBlock(blockPos4, Blocks.ICE.defaultBlockState(), 2);
                        ...
#

To go a bit further here, EAR is not supposed to be a replacement for simulation distance, as in, it does not offer a hard cap between ticking and non-ticking.

Entities already have a lot of triggers that mark them immune to EAR for a set amount of ticks based on state or events.
Or via things like the wake-up function defined in your config. EAR is hence more a reduction of ticks needed on entities in its range than a full stop to their activity.

I'll be closing this as "works as intended" thank you anyway for the detailed repot! I hope my explanation makes sense.

#

Currently running the profiler with recommended settings, I will get back to you in a moment, it takes time as it only happens every 5 minutes. But currently the tickmonitor is consistent with the report I made: (Ignore the GC with 121ms)

[16:42:20 INFO]: [โšก] Tick #7522 lasted 1636.52 ms. (3173.07% increase from avg)
[16:42:32 INFO]: [โšก] Tick #7783 included GC lasting 54 ms. (type = Young Gen)
[16:42:42 INFO]: [โšก] Tick #7980 included GC lasting 29 ms. (type = Young Gen)
[16:42:42 INFO]: [โšก] Tick #7988 included GC lasting 38 ms. (type = end of concurrent GC pause)
[16:42:42 INFO]: [โšก] Tick #7993 included GC lasting 0 ms. (type = end of concurrent GC pause)
[16:45:22 INFO]: [โšก] Tick #11192 included GC lasting 12 ms. (type = Young Gen)
[16:46:05 INFO]: [โšก] Tick #12053 included GC lasting 42 ms. (type = Young Gen)
[16:47:04 INFO]: [โšก] Tick #13234 included GC lasting 16 ms. (type = Young Gen)
[16:47:05 INFO]: [โšก] Tick #13242 included GC lasting 15 ms. (type = end of concu...
rustic folioBOT
#

Alrighty, so I've been running the profiler for 40 minutes or so, and the actual profiler (/spark profiler open) is empty.

I used /spark profiler --only-ticks-over 1000 according to the documentation, since my spikes are always over 1000ms per tick.

The profiler itself shows "No Data", and only the tick monitor shows what I sent above in the console and the in-game chat.

It happens consistently, emphasis on consistently, when the method I sent in the original post is executed. And again, any plugin using the same kind of method will cause the exact same issue.

Is there anything I can do to help make sure it is not an issue with my setup?
I am using Oracle's JDK 21 LTS if that helps, and our machine is a Debian server with a Xeon E5-1620v2 and 32GB of RAM. It isn't a VPS, the whole rack is ours.
I know the CPU is quite old, but I really don't think this could be the issue. I also assigned 16GB of heap to the JVM, and I am using the recommended flags from the docs.

#

Fixes #11084

getNoiseBiome() on LevelReader first attempts to getChunk() to get its cached noise biome, however, calling getChunk() on WorldGenRegion will cause a crash if the chunk isn't found "Requested chunk unavailable during world generation"

This means features which attempt to fetch biomes during generation, such as LakeFeature, can cause the server to crash.
This PR simply removes chunk lookups from getNoiseBiome() for WorldGenRegion by overriding the method.

#

Fixes #11084

getNoiseBiome() on LevelReader first attempts to getChunk() to get its cached noise biome, however, calling getChunk() on WorldGenRegion will cause a crash if the chunk isn't found "Requested chunk unavailable during world generation"

This means features which attempt to fetch biomes during generation, such as LakeFeature, can cause the server to crash.
This PR simply removes chunk lookups from getNoiseBiome() for WorldGenRegion by overriding the method.

rustic folioBOT
rustic folioBOT
#

Actually there are 2 cases where recipes are used. One where you open the crafter gui, you have a crafting grid and result showing of what crafter will produce.
So in case I have custom item using lapis lazuli item id and I don't want this item to be convertable into blue dye I listen to PrepareItemCraftEvent and set result to null/air. This way player don't get confused about this item. So for crafter also if a player will place that item into crafter I don't want him to see blue dye in the result window in a gui.
Second thing, I have a simple recipe declared and inside the event I change the lore and components of resulting item stack, for crafting I use PrepareItemCraftEvent to change the result so that player can see what they shall craft. I also would want to see those changes reflected in crafter gui.
Those 2 cases won't be solved with just an event that triggers when crafter is powered and item is being crafted.

#

Okay yea, but those changes are purely visual then on your end.
As stated on the PR, there is a use for such an event, but it is going to need more work.

CrafterCraftEvent sounds like it solves all but your visual issues, which means we can merge this PR to progress to stable 1.21 and work on something for your plugin to modify the ephemeral result shown in the GUI later.

rustic folioBOT
#

If we're talking about completelly bare minimum then I guess yeah, itฤ…s enough for me to not block crafters on update, but not enough for me to say this can be closed.

Btw sorry for offtop, but while I have your attention could you look into #10973
It solves an issue with crafting recipes and is already tested by me that it works but for 2 weeks nothing went forward. Could you check into that PR and see if it can also be delivered?

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Fixes #10744

Currently, on paper, when you add HIDE_ATTRIBUTES flag to an item, e.g. a diamond sword, it incorrectly still shows the "When in main hand 7 attack damage..." default attributes, which are supposed to be hidden.

On spigot, however, these default attributes are correctly hidden, upon investigation, the general-itemmeta-fixes patch breaks this functionality, This PR fixes the functionality and brings it back in line with spigot/pre 1.20.5 behaviour.

Note, on #10744 there is a comment stating that having empty attributes defined on the item overrides the default attributes, but from my testing this does not appear to be the case.

#

This just relies on highly inconsistent behavior which seems to confuse everybody who ends up touching it.

Adding a component will override the default component, mojang has some logic that they scatter around which is smart enough in some cases to get the default values, but, there are many cases where they just don't, and so you end up with an item which will behave unpredictably in many cases. I think that the best solution here would be to allow people to explicitly opt into having an empty component, however, ItemMeta doesn't exactly handle that well and just further perpetuates the potential headaches of promising sane behavior around such a clugy API.

rustic folioBOT
rustic folioBOT
#

Expected behavior

Enchanting to work as normal.

Observed/Actual behavior

Wrong enchantments as seen in the attachment.
xXHf47e

Steps/models to reproduce

Loading a world in 1.19.4
Upgrading it to the lastest.

Plugin and Datapack List

Via version, via backward

Afk detect, afk message, afk dum names, fast decay, unlock all recipes, coordinates hud, duraping, last death location, loyal items,

Paper version

This server is running Paper version 1.21-78-master@ef96a69 (2024-07-16T08:23:03Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.21-77-2cd8c46 (MC: 1.21)

Other

Also not only in the enchanting table, even villagers are messed up. The curse books aren't red in color, instead the mending book is. There is probably another book that I have yet to see which is also red.

rustic folioBOT
rustic folioBOT
#

Updated the PR to include the causes upstream added. Also moved the primary event call to CraftEventFactory#callEntityRemoveEvent, as using ServerLevel.EntityCallbacks#onTrackingEnd didn't provide the additional cause context, and that method isn't called on entity unload. The previous event call there was made to use a new INACCESSIBLE cause, for when the chunk an entity is in is made inaccessible (but prior to fully unloading).

#

There is not a removed set of data component types on CraftMetaItem, that should be used instead of including them in the unhandled patch to maintain only 1 places of information to be stored. This caused some issues with serialization. There is already logic in the deserializing constructor to move removed data components from the unhandled patch into the field, so this shouldn't cause any issues except changes to what serialized stacks with removed components look like.

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Expected behavior

Using Paper's BasicCommand API, I can define a permission string that is required for my command (https://github.com/PaperMC/Paper/pull/11047). When I check the permission of this command in the CommandMap, I expect it to return the value I defined.

Observed/Actual behavior

The result of Command#getPermission is null.

Steps/models to reproduce

This is the only code in my plugin:

public class BukkitTestPlugin extends JavaPlugin {
    @Override
    public void onEnable() {
        getLifecycleManager().registerEventHandler(LifecycleEvents.COMMANDS, event -> {
            final Commands commands = event.registrar();
            commands.register("test", new BasicCommand() {
                @Override
                public void execute(@NotNull CommandSourceStack commandSourceStack, @NotNull String[] strings) {
                    commandSourceStack.getSender().sendMessage("Ran command");
                }

                ...
rustic folioBOT
#
[PaperMC/Paper] New branch created: feat/spark
rustic folioBOT
#

Expected behavior

Zombie breaking wooden doors when trying to go to some place that is at the other side of the door

Observed/Actual behavior

2024-07-16_19 11 46
already more than 1 minute and no zombie trying to break the door

Steps/models to reproduce

Go to a house with a wooden door, place a zombie outdoors, go outside and close the door

Plugin and Datapack List

nothing

Paper version

Paper 1.21 build #79

Other

No response

rustic folioBOT
#
[PaperMC/Paper] branch deleted: feat/disable-timings-by-default
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

In general just want to put this here for more conversation but I feel like we shouldn't "half" support this stage like this. We need to completely deviate from the player inheritance stage in order to properly support this stage... (a disconnect event that occurs here, etc)

Having a player during this stage at all is flawed in itself, and is just due to a bad spigot representation. So we should move away from that in the future anyways.

#

I did say elsewhere about making Player more attached to the Network, but, we could maybe go for a more overarching thing of just offering a wrapper for the connection itself which lets you stem off into a configuring client, which lets you see methods only available in that phase, as well as a more general one that lets you get the player? not really sure how that would look, but, we also need to approach this for earlier stage stuff too, anyways, i.e. login plugin messaging API

rustic folioBOT
rustic folioBOT
#

remove timings patch as it's going to replaced with spark. i heard that it's now deprecated and marked for removal in paper.

it is deprecated and turned off by default now, but it shouldn't be removed entirely yet, since there are people which may still want to use it/need to use it

rustic folioBOT
#

Stack trace

https://pastes.dev/yoCLLWYSMh

Whenever I (Myself, ZeCarrotGamer) Join, the server shuts down. Doesn't happen for ANYONE else. I am in the Deep Dark at the time. This was relevant the last time I tried resolving the issue

Plugin and Datapack List

No Datapacks
No Plugins

image
image

No Mods

Actions to reproduce (if known)

Only happening on my server. I start my server like a normal day and log on. Go to an ancient city and all of a sudden get disconnected and welcome myself to the server crashing

Paper version

[21:23:29 INFO]: Checking version, please wait...
[21:23:30 INFO]: This server is running Paper version 1.20.6-148-ver/1.20.6@20f5165 (2024-07-02T15:37:33Z) (Implementing API version 1.20.6-R0.1-SNAPSHOT)
You are running the latest version
Previous version: git-Pa...

rustic folioBOT
#

Stack trace

https://pastes.dev/WR0v3ujEpe : ERROR

https://pastes.dev/G2Bg24qSRs : latest.log

Plugin and Datapack List

hata

Actions to reproduce (if known)

No response

Paper version

[15:29:41] [ServerMain/INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, name=PROD]
[15:29:42] [ServerMain/INFO]: Loaded 1290 recipes
[15:29:42] [ServerMain/INFO]: Loaded 1399 advancements
[15:29:43] [Server thread/INFO]: Starting minecraft server version 1.21
[15:29:43] [Server thread/WARN]: ****************************
[15:29:43] [Server thread/WARN]: YOU ARE RUNNING THIS SERVER AS AN ADMINISTRATIVE OR ROOT USER. THIS IS NOT ADVISED.
[15:29:43] [Server thread/WARN]: YOU ARE OPENING YOURSELF UP TO POTENTIAL RISKS WHEN DOING THIS.
[15:29:43] [Server thread/WARN]: FOR MORE INFORMATION, SEE https://madelinemil...

rustic folioBOT
#

This patch adds an option to use a longer ticks-per-spawn for given mob types in chunks where previous spawn attempts have consecutively failed (e.g. spawnproofed chunks). The ticks-per-spawn and the number of failed attempts before they kick in are both configurable (the setting is disabled by default). The number of failed spawn attempts is stored with the chunk so it persists across unloads. As soon as a mob is able to spawn in a chunk, the failed spawn attempt counter resets and the chunk starts using the default ticks-per-spawn again.

This behaviour is useful on servers where players use mob farms. Mob farms typically require spawnproofing the surrounding chunks to improve rates, which causes the server to waste CPU cycles trying to find suitable spawn locations. By identifying suspected spawnproof chunks and throttling attempts at spawning mobs in them, it is possible to improve performance without noticeably affecting overall mob spawning behaviour.

I've been using a [s...

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Expected behavior

I expected no error.

Observed/Actual behavior

image

Steps/models to reproduce

I don't know.

Plugin and Datapack List

[15:53:51 INFO]: Server Plugins (59):
[15:53:51 INFO]: Paper Plugins:
[15:53:51 INFO]: - EconomyShopGUI
[15:53:51 INFO]: Bukkit Plugins:
[15:53:51 INFO]: - AdvancedBan, ArmorQualities, AuthMe, AutoCraft, BetterWhitelist, Bounties, Brewery, Chunky, ChunkyBorder, Citizens
[15:53:51 INFO]: CMILib, CoinsEngine, CoreProtect, CraftingStore, Craftorithm, CrazyAuctions, CrazyEnvoys, CustomCrops, DailyRewards, DecentHolograms
[15:53:51 INFO]: DeluxeCombat, DeluxeMenus, dynmap, EnchantableMending, Essentials, EssentialsChat, EssentialsSelectors, EssentialsSpawn, EssentialsWarpGUI, FastLogin
[15:53:51 INFO]: floodgate, FreeCoinFlip, Geyser-Spigot, GSit, Jobs, KauriVPN, LagFixer, Lands, LuckPerms, Multiverse-Core
[15:53:51 INFO]: NBTAPI, nig...

rustic folioBOT
rustic folioBOT
#

Expected behavior

No errors and a clean reload.

Observed/Actual behavior

A ConcurrentModificationException.

Steps/models to reproduce

Start server
Reload until you see the error. ( it's at the bottom kinda )

Plugin and Datapack List

Plugins (all Bukkit) : FacilisCommon, MultiWorld and SkinsRestorer
Datapacks: vanilla (built-in), file/bukkit (world), bundle (feature), paper (built-in)

Paper version

[19:56:32 INFO]: Checking version, please wait...
[19:56:32 INFO]: This server is running Paper version 1.21-83-master@967f98a (2024-07-17T14:55:35Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.21-81-ceeb8c1 (MC: 1.21)

Other

I noticed that every time I start my server, reload it a couple of times ( because I am developing my own plugin ) and look at the console ( to check for bugs ), I see a ConcurrentModificationException with a number that increments every time I see the error ( not every tim...

#

There is a long known issue in the logic for sending commands to clients async, this is generally harmless and afaik, there is already issues open for this (or, at least, it's known about)

So, it's known about. But can it be resolved or at least suppressed? I like a clean console.
Also there aren't any issues about this specific method of getting it. ( but there are about it existing )

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

This issue is likely caused by Multiverse-Core. Please consider uninstalling it. The keepSpawnInMemory configuration option in Multiverse-Core is forcibly set to true every time it loads. Previously, this could be suppressed by the keep-spawn-loaded: false option in Paper, but since Paper version 1.20.5 and above, this option has been removed, and the lingering issue with Multiverse-Core has re-emerged

rustic folioBOT
#
[PaperMC/Paper] New branch created: upstream
#

Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
3a3bea52 SPIGOT-7829: Increase maximum outgoing plugin message size to match Vanilla intention 5cd1c8cb SPIGOT-7831: Add CreatureSpawnEvent.SpawnReason#POTION_EFFECT a8e278f0 SPIGOT-7827: Sync EntityPortalEvent with PlayerPortalEvent since non-players can now create portals 53729d12 Remove spurious ApiStatus.Internal annotation b9f57486 SPIGOT-7799, PR-1039: Expose explosion world interaction in EntityExplodeEvent and BlockExplodeEvent 7983b966 PR-1029: Trial changing a small number of inner enums to classes/interfaces to better support custom values

CraftBukkit Changes:
403accd56 SPIGOT-7831: Add CreatureSpawnEvent.SpawnReason#POTION_EFFECT 812761660 Increase outdated build delay
bed1e3ff6 SPIGOT-7827: Sync EntityPortalEvent with PlayerPortalEvent since non-players can now create portals 2444...

rustic folioBOT
#

G'day @Carrot26,
This is a duplicate of https://github.com/PaperMC/Paper/issues/10022, and a fix was applied for 1.20.6+.

Granted, you were running an older build when you generated your world so the plugin linked in the aforementioned issue won't work for you yet, but the wonderful @lynxplay was very kind and said he'd bump it to work on 1.20.6 when he gets a chance. So keep an eye out for that, run the plugin and it should resolve your issue.

rustic folioBOT
#

So, upon further testing, I found out that this bug is really sketchy.

After I made the original post, I closed the server, along with my Minecraft client. ( I was on the server while this error was occurring)

So, after your reply, I fired up the server again ( because all the logs contained my custom plugin so I wanted to eliminate the possibility) and began testing and I realized that it doesn't happen when I'm not on the server ( or at least I didn't get it ). Then I restarted it (for a clean log) and logged on and after a couple reloads, it started happening again. Here's the log:

latest.log

rustic folioBOT
#

Why should Spark be bundled with Paper? It would be much better if the admin could choose to install Spark as a separate plugin when needed, which is how it's currently done. If Spark is bundled with Paper, updating Spark would require updating Paper too, which isn't always feasible due to the inability to upgrade to a new version (for example, some are still using the 1.20.4 or 1.20.6 core instead of 1.21).

rustic folioBOT
rustic folioBOT
#

Expected behavior

ChunkLoadEvent and ChunkUnloadEvent should fire regularly as chunks load and unload.

Observed/Actual behavior

Starting in Paper 1.21 build 84 (Moonrise changes), ChunkLoadEvent and ChunkUnloadEvent do not fire at all.

Steps/models to reproduce

Test plugin:

    @EventHandler
    public void onChunkLoad(ChunkLoadEvent event) {
        // Does not fire
        getLogger().info("Chunk load " + event.getChunk().getX() + " " + event.getChunk().getZ());
    }

    @EventHandler
    public void onChunkUnLoad(ChunkUnloadEvent event) {
        // Does not fire
        getLogger().info("Chunk UNload " + event.getChunk().getX() + " " + event.getChunk().getZ());
    }

    @EventHandler
    public void onChunkLoadPlayer(PlayerChunkLoadEvent event) {
        // Works as expected
        getLogger().info("Chunk load PLAYER " + event.getChunk().getX() + " " + event.getChunk().getZ());
    }

    @EventHandler
    public void onChunkU...
rustic folioBOT
rustic folioBOT
#
[PaperMC/Paper] branch deleted: upstream
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Expected behavior

Usually, you would be able to get and set items to/from a config and they should work as normal items and be saved by minecraft

Observed/Actual behavior

ArmorStands with any meta (name only, lore only) cannot be saved by minecraft IF the steps below are done.
The issue seems to lie in the deserialized item having a nbt compound called "entity-tag". This tag does not seem to be saveable by minecraft nbt. /paper dumpitem also errors for this deserialized item.

Steps/models to reproduce

Steps to replicate

  1. Get an armorstand with any meta (name changed or any lore)
  2. Serialize using Bukkit(via config, BukkitObjectOutputStream etc)
  3. Deserialized using Bukkit(the opposite of how you serialized)
  4. Add this deserialized item to inv
  5. This item is unsaveable, causing an error. Inventories with this item, chunks etc won't save

Plugin and Datapack List

Not necessary.

Paper version

version 1.21-50-master@20889d0 (2024-07-10T16:28:03Z...

rustic folioBOT
rustic folioBOT
#

Expected behavior

On Spigot, my command works:

>version
[10:31:48] [Server thread/INFO]: This server is running CraftBukkit version 4195-Spigot-fcd94e2-f057cf4 (MC: 1.20.6) (Implementing API version 1.20.6-R0.1-SNAPSHOT)
[10:31:48] [Server thread/INFO]: Checking version, please wait...
[10:31:49] [Thread-8/INFO]: You are 33 version(s) behind
>test command1
[10:31:54] [Server thread/INFO]: You ran the command1 subcommand with arguments []
>test command2
[10:31:58] [Server thread/INFO]: You ran the command2 subcommand with arguments []
>test command3
>test
>test command1 hello
[10:32:46] [Server thread/INFO]: You ran the command1 subcommand with arguments [hello]
>test command1 hello world
[10:32:49] [Server thread/INFO]: You ran the command1 subcommand with arguments [hello, world]

Observed/Actual behavior

On Paper, when my plugin enables, this exception occurs:

[10:36:14 INFO]: [BukkitTestPlugin] Enabling BukkitTestPlugin v1.0-SN...
#
[PaperMC/Paper] New branch created: fixes/armor-meta
#

If it's not intended to be Spigot API, then why is it in the spigot-api module? I would expect it to be placed in spigot-server like CraftCommandMap if it wasn't intended to be accessible. As shown in the example plugin, I think it is a useful part of the API, making it easy to implement sub-commands in a way that works on Spigot.

I believe Paper could still provide access to this part of Spigot API like so:

public class SimpleCommandMap implements CommandMap {
    // Old constructor
    public SimpleCommandMap(Server server) {
        this(server, new HashMap<>());
    }

    // New constructor added by https://github.com/PaperMC/Paper/pull/8235
    // Paper start
    @org.jetbrains.annotations.ApiStatus.Internal
    public SimpleCommandMap(@NotNull final Server server, Map<String, Command> backing) {
        this.knownCommands = backing;
    // Paper end
        this.server = server;
        setDefaultCommands();
    }
}

I've heard that Pa...

#

Bundling implementation inside of the api does not explicitly mean that it's intended for plugin devs to poke at it, this was not a use case we ever expected anybody to be doing.

This was explicitly a case of bukkit bundling their command system inside of the API to have a simple implementation of it existing around for implementers of the API to use.

#

Classing beginning with "Simple" are implementation classes, see the javadoc description

Ahhh, thanks for pointing that out. I didn't see any mention of that in the javadocs for SimpleCommandMap itself (https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/command/SimpleCommandMap.html), but I did find that note on the main page (https://hub.spigotmc.org/javadocs/bukkit/index.html).

rustic folioBOT
#
[PaperMC/Paper] New branch created: aaaaa
#
[PaperMC/Paper] branch deleted: basiccommand-builder
#
[PaperMC/Paper] branch deleted: aaaaa
rustic folioBOT
#
[PaperMC/Paper] New branch created: commodore-flag
rustic folioBOT
rustic folioBOT
#
[PaperMC/Paper] New branch created: better-done-timer
rustic folioBOT
#
[PaperMC/Paper] New branch created: feat/bootstrap
#
[16:24:06 INFO]: [bootstrap] Running Java 21 (OpenJDK 64-Bit Server VM 21.0.2+13-LTS; Azul Systems, Inc. Zulu21.32+17-CA) on Windows 11 10.0 (amd64)
[16:24:06 INFO]: [bootstrap] Loading Paper 1.21-DEV (2024-07-18T23:24:05Z) for Minecraft 1.21
[16:24:13 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, name=PROD]
[16:24:15 INFO]: Loaded 1290 recipes
[16:24:15 INFO]: Loaded 1399 advancements
[16:24:16 INFO]: Starting minecraft server version 1.21
[16:24:16 INFO]: Loading properties
rustic folioBOT
#
[PaperMC/Paper] New branch created: feat/plugin-scoped-resources
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Expected behavior

be nomal(

Observed/Actual behavior

[14:21:51 WARN]: Failed to validate message acknowledgements from XXX
[14:21:51 INFO]: XXX lost connection: Chat message validation failure
[14:21:51 INFO]: XXX left the game

Steps/models to reproduce

When player press "T" to send something
he will be kicked because of Chat message validation failure

Plugin and Datapack List

Plugins: CoreProtect, GrimAC, GSit, ImageFrame, LuckPerms, MOTD, MultiLogin, Multiverse-Core, Multiverse-NetherPortals, Multiverse-Portals, nAntiBot, OpeNLogin, Orebfuscator, PlaceholderAPI, PlugManX, Points, ProtocolLib, SkinsRestorer, spark, *TPAPro, UltraSetHome, ViaBackwards, ViaRewind, ViaRewind-Legacy-Support, ViaVersion, Vulcan

Datapack: [vanilla (built-in)], [file/bukkit (world)], [paper (built-in)]

Paper version

This server is running Paper version 1.21-93-master@d08e8d1 (2024-07-18T22:39:15Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running th...

rustic folioBOT
#

https://github.com/PaperMC/Paper/commit/2a392767942799bc93a70a8698a0ef4ca7b8b6f9 has been merged.

As described in the javadoc, sadly upstream decided to also propose this event.
We preemptively ported their proposed changes into an experimental event.
If everything goes well, when they merge said PR and nothing changed, we can just drop the experimental annotation.

However, as we do not have control over what upstream does, they may change some methods around, in which case, there will be a breaking change on paper. This preliminary event pull should enable everyone here to do the bare minimum (see discussion above, we still need to work on a way to also fix the visuals in the CraferMenu), but I'd heavily suggest following the dev-announcment discord channel to get notified if we have to pull breaking changes to this event down the line.

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Expected behavior

When the ProjectileLaunchEvent is canceled, the inventory item responsible for the projectile should remain in the player's inventory and not be removed. This behavior should be consistent with previous versions, such as 1.20.4, where the item is not removed if the event is canceled.

Observed/Actual behavior

In Paper version 1.20.6, the inventory item responsible for the projectile is removed even if the ProjectileLaunchEvent is canceled. Additionally, the item appears to be removed before the event is called, which differs from the expected behavior seen in earlier versions like 1.20.4.

Steps/models to reproduce

Steps to Reproduce:

  1. Set up a Paper server running version 1.20.6.
  2. Implement the following code to handle the ProjectileLaunchEvent:

public class ProjectileLaunchListener implements Listener {

@EventHandler
public void onProjectileLaunch(ProjectileLaunchEvent event) {
    event.setCancelled(tr...
rustic folioBOT
rustic folioBOT
#

Stack trace

---- Minecraft Crash Report ----
// There are four lights!

Time: 2024-07-19 16:52:54
Description: Exception ticking world

java.lang.ClassCastException: class org.bukkit.craftbukkit.inventory.CraftComplexRecipe cannot be cast to class org.bukkit.inventory.CraftingRecipe (org.bukkit.craftbukkit.inventory.CraftComplexRecipe and org.bukkit.inventory.CraftingRecipe are in unnamed module of loader java.net.URLClassLoader @7857fe2)
at net.minecraft.world.level.block.CrafterBlock.dispenseFrom(CrafterBlock.java:169)
at net.minecraft.world.level.block.CrafterBlock.tick(CrafterBlock.java:94)
at net.minecraft.world.level.block.state.BlockBehaviour$BlockStateBase.tick(BlockBehaviour.java:1221)
at net.minecraft.server.level.ServerLevel.tickBlock(ServerLevel.java:1235)
at net.minecraft.world.ticks.LevelTicks.runCollectedTicks(LevelTicks.java:192)
at net.minecraft.world.ticks.LevelTicks.tick(LevelTicks.java:89)
at net.minecraft.server.level.ServerLevel.tick(Se...

rustic folioBOT
#

Expected behavior

When cancelling the entity unleash event with the reason distance, nothing should happen to the leash
It should stay attached to the entity and should not be dropped

Observed/Actual behavior

The leash is removed (not only visually: getting the leash holder afterward returns null) but it does not drop

Steps/models to reproduce

  1. cancel the EntityUnleashEvent
  2. go as far that the entity should unleash for example the reason distance

Plugin and Datapack List

[19:01:27 INFO]: Server Plugins (5):
[19:01:27 INFO]: Paper Plugins:
[19:01:27 INFO]: - Commander, HologramAPI, Lobby, Tweaks
[19:01:27 INFO]: Bukkit Plugins:
[19:01:27 INFO]: - LuckPerms

[19:01:39 INFO]: There are 3 data pack(s) enabled: [vanilla (built-in)], [file/bukkit (world)], [paper (built-in)]
[19:01:39 INFO]: There are no more data packs available

Paper version

This server is running Paper version 1.21-97-master@e71c1df (2024-07-19T11:57:42Z) (Implementing API ...

rustic folioBOT
rustic folioBOT
#
[PaperMC/Paper] New branch created: done-message-take-3
#
[PaperMC/Paper] branch deleted: done-message-take-3
rustic folioBOT
rustic folioBOT
#

Expected behavior

lootables working

Observed/Actual behavior

lootables not working

Steps/models to reproduce

use lootables (i used a custom end_city_treasure lootable)

Plugin and Datapack List

21:52:20 [INFO] Server Plugins (61):
21:52:20 [INFO] Paper Plugins:
21:52:20 [INFO] - CrazyCrates, mServerLinks, RoseStacker
21:52:20 [INFO] Bukkit Plugins:
21:52:20 [INFO] - AdvancedEnchantments, ajLeaderboards, AntiRaidFarm, AuraSkills, ChatSentry, Chunky, ChunkyBorder, CommandWhitelist, CompactPurpur, CoreProtect
21:52:20 [INFO] DecentHolograms, DoubleDoors, EntityDetection, Essentials, EssentialsDiscord, EssentialsSpawn, FarmControl, floodgate, Geyser-Spigot, GSit
21:52:20 [INFO] InteractiveChat, InventoryRollbackPlus, InvSeePlusPlus, JetsAntiAFKPro, Lands, LiteBans, LoneLibs, LPC, LuckPerms, MiniMOTD
21:52:20 [INFO] Multiverse-Core, NBTAPI, PlaceholderAPI, Plan, ProtocolLib, PvPManager, Quests, QuickShop-Hikari, SayanVanish, Shopkeepers
21:52:20 [INFO] ...

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Timings or Profile link

https://spark.lucko.me/wAeTTxWFDM

Description of issue

Hello, I need help about a little lag in my 1.20.4 server. When i'm playing and pick up some items, these take seconds to appear in the inventory. I need to open my inventory and sometimes even click in the inventory to make appear the items picked.

Plugin and Datapack List

Server Plugins (59):
Paper Plugins:
EconomyShopGUI-Premium
Bukkit Plugins:
ActivityRewarder, AuraSkills, AutoBroadcast, BetterRTP, BetterStructures, BlueBridgeCore, BlueBridgeGP, BlueBridgeWG, BlueMap, BlueMap-BannerMarker
BlueMapFloodgate, BlueMapPlayerControl, Chunky, ChunkyBorder, CMILib, CommandPanels, CoreProtect, DeathChest, DecentHolograms, EliteMobs
Essentials, EssentialsChat, EssentialsSpawn, ExecutableItems, ExtraRecipes, floodgate, Geyser-Spigot, GPExtension, GPFlags, GriefPrevention
GSit, Hurricane, InteractionVisualizer, Jobs, JobsReborn-PatchPlaceBreak, LevelledMobs, LightAPI, LightAPI...

rustic folioBOT
rustic folioBOT
#

Resolved by 1595e4a

It seems that the bug is still present [today](#paper-help message)
https://mclo.gs/30wzd87


[12:36:35] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
--
130 | [12:45:02] [Thread-2/INFO]: Stopping server
131 | [12:45:02] [Thread-2/INFO]: [SkinsRestorer] Disabling SkinsRestorer v15.2.0
132 | [12:45:02] [Thread-2/INFO]: [WorldEdit] Disabling WorldEdit v7.3.4+6823-6263244
133 | [12:45:02] [Thread-2/INFO]: Unregistering com.sk89q.worldedit.bukkit.BukkitServerInterface from WorldEdit
134 | [12:45:02] [Thread-2/INFO]: [Veinminer] Disabling Veinminer v2.1.0
135 | [12:45:02] [Thread-2/INFO]: Saving players
136 | [12:45:02] [Thread-2/WARN]: Asynchronous Save Players! Blocking thread until it returns
137 | java.lang.IllegalStateException: null
138 | at io.paper...
rustic folioBOT
#
[PaperMC/Paper] branch deleted: feat/bootstrap
rustic folioBOT
#

Expected behavior

Timings to not be enabled when the config is set to disable it.

Observed/Actual behavior

Timings is still enabled

Steps/models to reproduce

  1. Download fresh server
  2. Start server
  3. See Timings reset at the end of startup
  4. Check config to see if its disabed

Plugin and Datapack List

None

Paper version

[14:17:28 INFO]: This server is running Paper version 1.21-103-master@aa3b356 (2024-07-20T17:56:20Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.21-102-aa3b356 (MC: 1.21)

Other

Microsoft Edge 2024-07-20 at 14 17 47@2x
Microsoft Edge 2024-07-20 at 14 17 56@2x

rustic folioBOT
#

Is your feature request related to a problem?

After adding Spark under Paper, I noticed that the tab for viewing plugins is missing. Additionally, the TPS command no longer opens Spark by default.

Describe the solution you'd like.

nee in "Is your feature request related to a problem?"

Describe alternatives you've considered.

see in "Is your feature request related to a problem?"

Other

No response

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Is your feature request related to a problem?

With the recent bundling of spark, I think it would be beneficial for the /tps command to redirect to /spark tps for a more informative output. This was mentioned in the closed discussion #11123, unsure on whether it was rejected.

Describe the solution you'd like.

/tps to output /spark tps

Describe alternatives you've considered.

N/A

Other

No response

rustic folioBOT
#

This seems to be a Powershell 5 specific issue. The console is working fine with the good old cmd.exe, and it also works without any issues with Powershell 7.

Seems to be caused by this JDK change. As a workaround, starting the server with -Djdk.console=java.base to revert to the old JDK behaviour fixes the issue. I would recommend just using PS7 though, its much nicer anyways.

For the record I'm not using powershell. I am in fact using good old cmd.exe

rustic folioBOT
#
[PaperMC/Paper] New branch created: feature/more-timings-deprecations
rustic folioBOT
#
[PaperMC/Paper] branch deleted: feature/more-timings-deprecations
rustic folioBOT
#
[PaperMC/Paper] New branch created: feat/timings-removal
rustic folioBOT
#

Expected behavior

Normally the Entity#setTarget method should override/untarget the current target of a mob

Observed/Actual behavior

In the current state this method is not setting the target due the mob memory(brain + MemoryModuleType.ATTACK_TARGET) which still keeps the target.

  • [ ]

Steps/models to reproduce

  1. Create a mob (a piglin for example)
  2. Let the piglin targetting you
  3. After some time (BukkitScheduler) or conditions try to set the target on "null"
  4. The mob is still attacking you and the target has not been updated!

Plugin and Datapack List

None

Paper version

This server is running Paper version git-Paper-461 (MC: 1.20.4) (Implementing API version 1.20.4-R0.1-SNAPSHOT) (Git: b600140)
You are 36 version(s) behind
Download the new version at: https://papermc.io/downloads/paper
Previous version: 1.20.6-130-5d8e53d (MC: 1.20.6)

Other

Im not sure if this is a possible bug, just wanted to mention this behavior.
You can get a...

rustic folioBOT
#

Is your feature request related to a problem?

Paper's anti-xray has problems with client side lag as well as other problems due to how it loads. Basically if a client is lagging loading chunks paper will think it is trying to xray and will display a mess of those blocks. Since the client has to load so many more block faces it lags even more causing a higher chance of this turning into a negative feedback loop. Throw in a laggy server as well and you run into even more problems. Paper is supposed to be the best server software out there when it comes to performance so this lack of care for client side performance is a problem.

Describe the solution you'd like.

The Orebfuscator Plugin solves these problems and more. However, its features could also be implemented separately without adding in the whole plugin itself. Orebfuscator has dynamic block visibility and has a ton of [configuration options](https:/...

rustic folioBOT
#

There is no processing of what you can see, it simply mangles all hidden blocks, so this doesn't have anything to do with a laggy server or client. If you use the strongest mode, that means the client needs to load a lot of different types of blocks.

Most of what you described at the bottom we already have, see https://docs.papermc.io/paper/anti-xray for more info, otherwise you should bring up specific feature suggestions separately

rustic folioBOT
#

Expected behavior

Cancelling ProjectileHitEvent of an arrow shouldn't affect its next target

Observed/Actual behavior

Once ProjectileHitEvent of an arrow with piercing has been cancelled, the next hit entity doesn't hurt at all

On AbstractArrow.java:

@Override
public ProjectileDeflection preHitTargetOrDeflectSelf(HitResult hitResult) {
    if (hitResult instanceof EntityHitResult entityHitResult && this.hitCancelled && this.getPierceLevel() > 0) {
        if (this.piercingIgnoreEntityIds == null) {
            this.piercingIgnoreEntityIds = new IntOpenHashSet(5);
        }
        this.piercingIgnoreEntityIds.add(entityHitResult.getEntity().getId());
    }
    return super.preHitTargetOrDeflectSelf(hitResult);
}

this.hitCancelled is checked to add the hit entity to piercing-ignoring entities, but it's BEFORE super.preHitTargetOrDeflectSelf

On Projectile.java:

public ProjectileDeflection preHitTargetOrDeflectSelf(HitResult m...
rustic folioBOT
#

Expected behavior

I would expect the links to stay after booting the server

Observed/Actual behavior

In the process of loading the server, the remapper deleted any symbolic link using the .jar extension

Steps/models to reproduce

make a symbolic link to a plugin used by the server

(exemple : ln -s /home/ubuntu/minecraft/shared/Citizens.jar /home/ubuntu/minecraft/hub/Citizens.jar )

start the server

Plugin and Datapack List

Not really related to pl or dp but here :
[14:32:11 INFO]: Bukkit Plugins: (25): [14:32:11 INFO]: - Citizens, DecentHolograms, DeluxeMenus, Essentials, EssentialsSpawn, FastAsyncWorldEdit, Infiniteannouncements, IP, ItemJoin, ItemsAdder [14:32:11 INFO]: LoneLibs, LPC, LuckPerms, ModelEngine, PlaceholderAPI, *PlayTime, PluginPortal, ProtocolLib, SkinsRestorer, TAB [14:32:11 INFO]: Vault, ViaBackwards, ViaVersion, WorldEditSelectionVisualizer, WorldGuard

`[14:32:45 INFO]: There are 3 data pack(s) enabled: [vanilla (built-in)], ...

#

Expected behavior

No Error

Observed/Actual behavior

It have this error:
[12:24:42 ERROR]: [DirectoryProviderSource] Error loading plugin: java.lang.IllegalArgumentException: Directory 'plugins/.paper-remapped/FRFly.jar' does not contain a paper-plugin.yml or plugin.yml! Could not determine plugin type, cannot load a plugin from it!
java.lang.RuntimeException: java.lang.IllegalArgumentException: Directory 'plugins/.paper-remapped/FRFly.jar' does not contain a paper-plugin.yml or plugin.yml! Could not determine plugin type, cannot load a plugin from it!
at io.papermc.paper.plugin.provider.source.FileProviderSource.registerProviders(FileProviderSource.java:86) ~[paper-1.21.jar:1.21-106-3a47518]
at io.papermc.paper.plugin.provider.source.DirectoryProviderSource.registerProviders(DirectoryProviderSource.java:52) ~[paper-1.21.jar:1.21-106-3a47518]
at io.papermc.paper.plugin.provider.source.DirectoryProviderSource.registerProviders(DirectoryProviderS...

#

My testing server is primarily a server using symlinked jars and I've never had such an issue

Here is my logs on a true papermc server

https://mclo.gs/6CUrqlZ

`> version
[12:51:12 INFO]: Checking version, please wait...
[12:51:12 INFO]: This server is running Paper version 1.21-107-master@aa36ae6 (2024-07-21T10:39:28Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.21-2247-39617d5 (MC: 1.21)

pl
[12:51:14 INFO]: Server Plugins (12):
[12:51:14 INFO]: Bukkit Plugins:
[12:51:14 INFO]: - Datapack_reload, Essentials, EssentialsSpawn, LoneLibs, LPC, LuckPerms, PlotSquared, ProtocolLib, Tweakin, ViaBackwards
[12:51:14 INFO]: ViaVersion, WorldEdit
datapack list
[12:51:19 INFO]: There are 3 data pack(s) enabled: [vanilla (built-in)], [file/bukkit (world)], [paper (built-in)]
[12:51:19 INFO]: There are no more data packs available`

rustic folioBOT
#

Expected behavior

Calling ArmoredHorseInventory#setArmor sets the body armor for horses/llamas.

Observed/Actual behavior

No effect. Armor isn't set for horses, decor item isn't set for llamas.

Steps/models to reproduce

A simple plugin with the following code:

Player player = ...;

Location location = player.getLocation();
World world = player.getWorld();

// Spawns with no armor
world.spawn(location, Horse.class, horse -> {
    horse.customName(Component.text("Armor", NamedTextColor.GREEN));
    horse.getInventory().setArmor(ItemType.DIAMOND_HORSE_ARMOR.createItemStack());
});

// Spawns with armor
world.spawn(location, Horse.class, horse -> {
    horse.customName(Component.text("Equipment", NamedTextColor.GREEN));
    horse.getEquipment().setItem(EquipmentSlot.BODY, ItemType.DIAMOND_HORSE_ARMOR.createItemStack());
});

Reproduces the issue.

Plugin and Datapack List

Just a test plugin with the code provided earlier in a command....

rustic folioBOT
#

This is related to https://github.com/PaperMC/Paper/pull/11028, getter doesn't work too. And it's a bit weird that the inventory size of the camel / llama without chest is 2 and not 1. The result of InventoryClickEvent#getSlot is inconsistent for those two cases too llama return 1 and camel return 0. It's also strange that getSaddle/setSaddle is exposed for the llama since they can't hold one.

rustic folioBOT
#

Expected behavior

No errors in console.

Observed/Actual behavior

[11:05:18] [Server thread/ERROR]: [ca.spottedleaf.moonrise.patches.chunk_system.scheduling.NewChunkHolder] Failed to save entity data (371,245) in world 'mining'
net.minecraft.ReportedException: Saving entity NBT
	at net.minecraft.world.entity.Entity.saveWithoutId(Entity.java:2565) ~[paper-1.21.jar:1.21-106-3a47518]
	at net.minecraft.world.entity.Entity.saveAsPassenger(Entity.java:2383) ~[paper-1.21.jar:1.21-106-3a47518]
	at net.minecraft.world.entity.Entity.saveAsPassenger(Entity.java:2369) ~[paper-1.21.jar:1.21-106-3a47518]
	at net.minecraft.world.entity.Entity.save(Entity.java:2399) ~[paper-1.21.jar:1.21-106-3a47518]
	at ca.spottedleaf.moonrise.patches.chunk_system.level.entity.ChunkEntitySlices.saveEntityChunk0(ChunkEntitySlices.java:116) ~[paper-1.21.jar:1.21-106-3a47518]
	at ca.spottedleaf.moonrise.patches.chunk_system.level.entity.ChunkEntitySlices.saveEntityChunk(ChunkEntitySlices.java:94...
#

Expected behavior

No errors.

Observed/Actual behavior

Many of our plugins are shooting off the following:

[14:14:00] [Server thread/ERROR]: Could not pass event PlayerTeleportEvent to WorldGuard v7.0.11-SNAPSHOT+2284-c6fbfb8
java.lang.NullPointerException: null
	at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:903) ~[guava-32.1.2-jre.jar:?]
	at worldedit-bukkit-7.3.5-SNAPSHOT-dist.jar/com.sk89q.worldedit.bukkit.BukkitAdapter.adapt(BukkitAdapter.java:224) ~[worldedit-bukkit-7.3.5-SNAPSHOT-dist.jar:?]
	at worldguard-bukkit-7.0.11-SNAPSHOT-dist.jar/com.sk89q.worldguard.bukkit.listener.WorldGuardPlayerListener.onPlayerTeleport(WorldGuardPlayerListener.java:361) ~[worldguard-bukkit-7.0.11-SNAPSHOT-dist.jar:?]
	at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor104.execute(Unknown Source) ~[?:?]
	at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
	at co.aikar.ti...
rustic folioBOT
#

Expected behavior

Auto-save behaves normally and works without causing the server to hang.

Observed/Actual behavior

The server hangs for upwards of 10 seconds, sometimes up to 30 which causes players to time out.

Steps/models to reproduce

Run a server for long enough for it to auto-save.

[18:35:32 ERROR]: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH  - 1.21-DEV-fe42d87 (MC: 1.21) ---
[18:35:32 ERROR]: The server has not responded for 10 seconds! Creating thread dump
[18:35:32 ERROR]: ------------------------------
[18:35:32 ERROR]: Server thread dump (Look for plugins here before reporting to Paper!):
[18:35:32 ERROR]: ------------------------------
[18:35:32 ERROR]: Current Thread: Server thread
[18:35:32 ERROR]:       PID: 39 | Suspended: false | Native: false | State: RUNNABLE
[18:35:32 ERROR]:       Stack:
[18:35:32 ERROR]:               java.base@21.0.3/sun.nio.ch.UnixFileDispatcherImpl.write0(Native Method)
[18:35:32 ERROR]: ...
rustic folioBOT
rustic folioBOT
#

Is your feature request related to a problem?

Since 1.17, bukkit has added a plugin configuration option that allows downloading required libraries when the server starts, so plugin authors don't need to package them into the plugin file anymore, which is great.
However, the default Maven repository address is currently https://repo.maven.apache.org/maven2/
We have to consider that some users (like me) may not be able to access that address due to network conditions.
This will cause users (like me) to abandon some plug-ins because they cannot download dependencies.
So can we add a configuration option to allow users to define where their servers download dependencies from?

Describe the solution you'd like.

Add the maven-mirror option in the configuration file (bukkit.yml or spigot.yml or config/paper-global.yml)

like this

maven-mirror: https://repo.huaweicloud.com/repository/maven/

Describe alternatives you've considered.

I haven't tried anythi...

rustic folioBOT
#

Expected behavior

This item flag should prevent music discs from showing their name.

Observed/Actual behavior

The record name is still visible in the lore.

Steps/models to reproduce

Create a command block where one runs a command to add the item flag. HIDE_ADDITIONAL_TOOLTIP.

Plugin and Datapack List

No plugins or data packs.

Paper version

This server is running Paper version 1.21-107-master@aa36ae6 (2024-07-21T10:39:28Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: git-Paper-408 (MC: 1.20.4)

Other

No response

rustic folioBOT
#

Expected behavior

I expected the end obsidian platform to break blocks and drop them

Observed/Actual behavior

I observed the end platform replace the blocks with air instead of breaking them

Steps/models to reproduce

I was recreating Rayworks's cobblestone farm
https://www.youtube.com/watch?v=NxiaBSG4HjU

Plugin and Datapack List

Plugins: ImageFrame, SkinsRestorer, ViaBackwards, ViaVersion
Datapacks: There are 33 data pack(s) enabled: [vanilla (built-in)], [file/Terralith_1.21_v2.5.4.zip (world)], [file/afk display v1.1.8 (MC 1.21.0).zip (world)], [file/anti creeper grief v1.1.8 (MC 1.21.0).zip (world)], [file/anti enderman grief v1.1.8 (MC 1.21.0).zip (world)], [file/anti ghast grief v1.1.8 (MC 1.21.0).zip (world)], [file/armored elytra v2.0.1 (MC 1.21.0).zip (world)], [file/back v1.3.8 (MC 1.21.0).zip (world)], [file/bukkit (world)], [file/cauldron concrete v3.0.1 (MC 1.21.0).zip (world)], [file/custom nether portals v2.3.11 (MC 1.21.0).zip (world)], [fil...

rustic folioBOT
#

Expected behavior

/give @s iron_sword{AttributeModifiers:[{Modifiers:[],ShowInTooltip:false}]}

Corresponding data: "minecraft:AttributeModifiers": {ShowInTooltip: 0b, Modifiers: []}

Observed/Actual behavior

not work

Steps/models to reproduce

ItemStack itemStack = new ItemStack(Material.IRON_SWORD);
ItemMeta itemMeta = itemStack.getItemMeta();
itemMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
itemStack.setItemMeta(itemMeta);
Player player = (Player) sender;
player.getInventory().addItem(itemStack);

Plugin and Datapack List

my plugin

Paper version

This server is running Paper version 1.21-107-master@aa36ae6 (2024-07-21T10:39:28Z) (Implementing API version 1.21-R0.1-SNAPSHOT)

Other

This issue cannot be reproduced in the latest Spigot, but exists in the latest Paper.

rustic folioBOT
#

This adds a static variable to the Commands class to provide early access to the command dispatcher before bootstrapping the command system or before MinecraftServer has been loaded.

This is mainly needed for a plugin I'm working on, which needs access to the command dispatcher at plugin bootstrap to allow for mcfunctions to access the commands I add. Previously, I needed to wait for the Commands class to be created for bootstrapping, which occurs after plugin bootstrapping.

#

This adds a static variable to the Commands class to provide early access to the command dispatcher before bootstrapping the command system or before MinecraftServer has been loaded.

This is mainly needed for a plugin I'm working on, which needs access to the command dispatcher at plugin bootstrap to allow for mcfunctions to access the commands I add. Previously, I needed to wait for the Commands class to be created for bootstrapping, which occurs after plugin bootstrapping.

#

Then reflect into the exposed Commands during the bootstrap lifecycle, it holds onto the dispatcher.

Given that internals are not API and we may change anything about it when we see fit, hence I don't think this PR is of much use for you. There is little point in promising a plugin like yours a static method for the dispatcher, when such a method may not make sense anymore in a couple of versions (or already barely does, given we have exposed brigadier completely to the API).

Thank you for the PR work, but I don't think Paper is interested in such a change due to the reasons laid out above.

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Yea I think I may be in favour of removing item post event call. How to track that nicely is going to be a fun challenge. We also need to make sure that nothing there runs that could be affected by not removing items.

Regarding removal anyway, if the diff ends up with some form of tracking wrapper around Item stack, we may also be able to remove and precisely readd.

rustic folioBOT
#

Expected behavior

I thought I could join on my server as always

Observed/Actual behavior

I could only join once after a restart, but then I couldn't join again

Steps/models to reproduce

I don't know how to reproduce this problem, but my error is:

[14:38:37 WARN]: Failed to handle packet for /:49168
net.minecraft.server.v1_8_R3.ReportedException: Sending packet
at net.minecraft.server.v1_8_R3.PlayerConnection.sendPacket(PlayerConnection.java:925) ~[patched_1.8.8.jar:git-PaperSpigot-445]
at net.minecraft.server.v1_8_R3.PlayerList.onPlayerJoin(PlayerList.java:334) ~[patched_1.8.8.jar:git-PaperSpigot-445]
at net.minecraft.server.v1_8_R3.PlayerList.a(PlayerList.java:173) ~[patched_1.8.8.jar:git-PaperSpigot-445]
at net.minecraft.server.v1_8_R3.LoginListener.b(LoginListener.java:144) ~[patched_1.8.8.jar:git-PaperSpigot-445]
at net.minecraft.server.v1_8_R3.LoginListener.c(LoginListener.java:54) ~[patched_1.8.8.jar:git-PaperSp...

rustic folioBOT
rustic folioBOT
#

I am unsure if we are inclined to fix this.
The new system is supposed to replace the old, not co-exist forever.

Having the already cursed command map implementation also attempt to find the permission of a brig node sounds kinda dumb. Especially when BasicCommand is only supposed to be a "simple" way to create a brigadier node, not a command framework exposed.

This is also generally not possible as plugins could just do this check in canUse in BasicCommand and skip the utility method.
E.g.

final class Example implements BasicCommand {
  int execute(...) {}

  boolean canUse(CommandSender sender) { return sender.hasPermission("testplugin.example") }.
}

Given we cannot promise consistency there (due to the pure nature of how brigadier's required works) I'll be closing this as "works-as-intended`. Obviously if you have more arguments for it, feel free to post them here, I'll gladly reopen for more of a discussion, but rn I cannot see a solid impleme...

rustic folioBOT
rustic folioBOT
#

Okay. Well this issue is kinda rough then.

Without any context as to where those items came from, it is hard to debug.

There are some known waits to cheat in items with a too large item count that could cause such a break, but that requires creative mode or command permissions from my knowledge.

Have you checked the chunk that failed to save?

I believe @electronicboy just forwarded me a paper jar to get more input / information. Will have more information hopefully after 24ish hours.

rustic folioBOT
rustic folioBOT
#
[PaperMC/Paper] New branch created: patch/early-l4j-shutdown-hook
rustic folioBOT
#

Expected behavior

Before spark switched over to being inside paper I had it downloaded and I was using the %spark_tps_5s% placeholder for tps in the DiscordSRV plugin. Before since spark was installed as a plugin its placeholders would automatically work with PAPI without downloading the spark extension. I was expecting this to not change.

Observed/Actual behavior

The placeholder did not work at all until I downloaded the spark Papi ecloud extension.

Steps/models to reproduce

  1. Use a spark placeholder in a different plugin
  2. It doesn't function

Plugin and Datapack List

Paper Plugins:
PaperTweaks
Bukkit Plugins:
AdvancedRegionMarket, AntiPopup, AnvilColors, AuctionHouse, ChatFilter, ChestShop, CoreProtect, CustomCommands, DecentHolograms, DiscordSRV, eGlow, Essentials, EssentialsChat, EssentialsSpawn, FastAsyncWorldEdit, GCore, Graves, GriefDefender, GSit, InteractiveChat. InteractiveChatDiscordSrvAddon, InventoryRollbackPlus, LastLoginAPI, LuckPerms,...

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Expected behavior

Plugins load (or fail with error text I can understand and fix?)

Observed/Actual behavior

Encountered exception remapping plugins
Failed to remap plugin jar 'plugins\IslandsWorldGen.jar'
java.lang.IllegalStateException: Duplicate entries detected

See below for full error:

[20:31:06] [ServerMain/ERROR]: [PluginRemapper] Encountered exception remapping plugins
java.util.concurrent.CompletionException: java.lang.RuntimeException: Failed to remap plugin jar 'plugins\IslandsWorldGen.jar'
at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source) ~[?:?]
at java.base/java.util.concurrent.CompletableFuture.completeThrowable(Unknown Source) ~[?:?]
at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source) ~[?:?]
at java.base/java.util.concurrent.CompletableFuture$Completion.run(Unknown Source) ~[?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]
at java...

rustic folioBOT
#

Expected behavior

no damage with knockback to nearby entities on collision

Observed/Actual behavior

explosion damage to nearby entities on collision

Steps/models to reproduce

1- host a minehut server on 1.21 with a difficulty higher than peaceful
2- grab a wind charge in creative
3- go in survival and throw the wind charge at your feet
4- death

Plugin and Datapack List

Skript
SkBee
Multiverse
Essentials

Paper version

This server is running Paper version 1.21-108-master@73a863b (2024-07-22T13:23:21Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
You are running the latest version
Previous version: git-Paper-496 (MC: 1.20.4)

Other

No response

rustic folioBOT
#

Update I have one other plugin hitting this, similar error. For what it's worth, I dev them both. Maybe I... compiled them weird..? Then again, some others plugins I run in production, I also deved and they aren't doing this.

Caused by: java.lang.IllegalStateException: Duplicate entries detected: me/ryanhamshire/BigScaryIslands/AutomaticBroadcaster.class, me/ryanhamshire/BigScaryIslands/BigScaryIslands$ExperienceBlockResetter.class, me/ryanhamshire/BigScaryIslands/BigScaryIslands$LateInitializer.class, me/ryanhamshire/BigScaryIslands/BigScaryIslands$ThrottledBlockUpdater.class, me/ryanhamshire/BigScaryIslands/BigScaryIslands$ThrottledChunkExplorer.class, me/ryanhamshire/BigScaryIslands/BigScaryIslands$ThrottledChunkLoader.class, me/ryanhamshire/BigScaryIslands/BigScaryIslands$TickTimestamper.class, me/ryanhamshire/BigScaryIslands/BigScaryIslands$TimedSubtitleSender.class, me/ryanhamshire/BigScaryIslands/BigScaryIslands.class, me/ryanhamshire/BigScaryIslands/BiomeIndexer$BiomeCat...

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

used by the built-in SpigotLibraryLoader is too late to be used in many places

I'm not sure what is even meant by this. I do and have supported the notion of letting people add a custom repo to serve as a proxy to central, be that to have a reliable "local" cache of central or for people running private servers to be able to deploy libraries to, but, outside of those two concerns, there is no real big thing here for allowing a custom repo. It's not a saving grace to plugin devs because they'd need their end users to keep switching repos every 2 weeks as they upgrade plugins to pull in their deps, etc.

for plugins themselves, paper plugins, or looking into library injection tools on their own, are generally going to be the only "wider" solution here

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Expected behavior

When the mace is enchanted with wind burst it should bounce the player back into the air when an enemy is hit.

Observed/Actual behavior

The player simply falls onto the ground without bouncing back when they hit an enemy.

Steps/models to reproduce

Enchant a mace with Wind Burst III and use it falling on an enemy.
I'm using a custom mace created with this command:

/give @p mace[custom_name='{"bold":true,"color":"blue","text":"Martellone del Valhalla"}',unbreakable={},enchantments={levels:{"minecraft:bane_of_arthropods":10,"minecraft:breach":10,"minecraft:density":10,"minecraft:smite":10,"minecraft:wind_burst":10}},attribute_modifiers=[{id:"entity_interaction_range",type:"player.entity_interaction_range",amount:10,operation:"add_value"},{id:"jump_strength",type:"generic.jump_strength",amount:3,operation:"add_value"},{id:"safe_fall_distance",type:"generic.safe_fall_distance",amount:1000,operation:"add_value"},{id:"step_height",type:"generic.s...
rustic folioBOT
rustic folioBOT
#

Expected behavior

Player Crafts something and picks it up, for example you craft planks with an stack of Logs, now the planks you have on your Cursor are 64, now the event shouldnt trigger.

Observed/Actual behavior

Player Crafts something and picks it up, for example you craft planks with an stack of Logs, now the planks you have on your Cursor are 64, now the event triggers

Steps/models to reproduce

@EventHandler
public void onBuildingBlockCrafting(CraftItemEvent event){
    Material resultMaterial = event.getCurrentItem().getType();
    UUID uuid = event.getWhoClicked().getUniqueId();
    Player player = (Player) event.getWhoClicked();
    double multiplier = event.getCurrentItem().getAmount() + Maths.getJobEPFormel(8, event.getWhoClicked().getUniqueId());

    if (resultMaterial == Material.OAK_PLANKS ||
            resultMaterial == Material.SPRUCE_PLANKS ||
            resultMaterial == Material.BIRCH_PLANKS ||
...
rustic folioBOT
#

Stack trace

at wf.a(SourceFile:33)
at zj.a(SourceFile:62)
at fzc.a(SourceFile:136)
at fzc.a(SourceFile:127)
at vt.exceptionCaught(SourceFile:161)
at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346)
at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325)
at io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317)
at io.netty.channel.DefaultChannelPipeline$HeadContext.exceptionCaught(DefaultChannelPipeline.java:1377)
at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346)
at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325)
at io.netty.channel.DefaultChannelPipeline.fireExceptionCaught(DefaultChannelPipeline.java:907)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.h...