#paper

1 messages · Page 1 of 1 (latest)

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Expected behavior

When you wear a helmet in Minecraft, damage from a falling anvil or a falling pointed dripstone should be reduced by 1/4. However, because vanilla Minecraft doesnt reduce the damage by 1/4 since a few version ago (which is not intended, i guess), i at least expected it to be the same amount of damage, when you are wearing only boots and when you are wearing only a helmet.

The first Screenshot is after getting hit by a dripstone while only wearing boots, max Health is...

rustic folioBOT
#

Stack trace

Time: 5/24/23 1:18 PM
Description: Ticking player

java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextNode(HashMap.java:1469)
at java.util.HashMap$KeyIterator.next(HashMap.java:1493)
at java.util.AbstractCollection.addAll(AbstractCollection.java:343)
at java.util.HashSet.(HashSet.java:120)
at com.google.common.collect.Sets.newHashSet(:258)
at net.minecraft.server.v1_20_R1.AttributeModifiable.b(:204)
at net.minecraft.server.v1_20_R...

rustic folioBOT
#

It's a ticks per check option, to delay how often a spawner tries to run
it's logic

On Mon, 31 Jul 2023, 14:02 MadDog443, @.***> wrote:

So could anyone actually explain the behavior of this config setting,
while it states what it is in the docs it does not state the measurement,
is this a multiplier, a ticks per check, or a checks per tick?


Reply to this email directly, view it on GitHub
https://github.com/PaperMC/Paper/issues/3455#issuecomment-1658331355,...

rustic folioBOT
rustic folioBOT
#

It's how often the check is run, spawners have a counter on them before
they can spawn again, if the value is set to 2, then it runs every 2 ticks
instead of every tick, and decrements the counter by 2, thus making there
be little difference in the time between spawns; if you want to actually
modify how long spawns take in general, you'd need a plugin to change how
long the counter runs for, as it's defined from the mob spawners data

On Mon, 31 Jul 2023, 14:09 MadDog443, @.***> ...

rustic folioBOT
#

This PR adds the getFluid() method to the Block interface and implements it in CraftBlock. I also added a similar method to getBukkitMaterial, getBukkitFluid, in BlockState
It does pretty much what it says, returns the org.bukkit.Fluid present in the block. For example a waterlogged stair will return a Fluid.WATER, same for kelp and uh same for water. Did that make sense?

#

This PR adds the getFluid() method to the Block interface and implements it in CraftBlock. I also added a similar method to getBukkitMaterial, getBukkitFluid, in BlockState
It does pretty much what it says, returns the org.bukkit.Fluid present in the block. For example a waterlogged stair will return a Fluid.WATER, same for kelp and uh same for water. Did that make sense?

rustic folioBOT
rustic folioBOT
#

Expected behavior

I expected the sand to not break in this setup. The sand collides with the boats and snaps down to the block below it. Reloading the affected chunks has no effect on the setup.
Video demonstration: https://www.youtube.com/watch?v=PJcRZoXnDyY

Observed/Actual behavior

The sand in the setup broke, but only after reloading the chunks containing it. Instead of the sand snapping down to the block below it on collision with the boats, the sand breaks and turns into ...

rustic folioBOT
rustic folioBOT
#

Expected behavior

For setting the type to null on a spawner that has type set to remove the spawner's type.

Observed/Actual behavior

Setting it to null and then calling the update method doesn't seem to affect it, and it continues to spawn the type it previously had set.

Steps/models to reproduce

Tested with the following code on a spawner that has an entity type set.

CreatureSpawner spawner = (CreatureSpawner) block.getState();
spawner.setSpawnedType(null);
spa...
rustic folioBOT
#

any update on this ? the behavior is still in effect to this date, from my experiments i have deduced it comes from the per player mob cap not allowing for vanilla setting :

  • true will respect post-1.18 per player mob cap but remove the fonctionnality of remotely loaded mob switches
  • false will return mob cap to 1.18 vanilla behavior (which isn't per player as today vanilla would allow) but remotely loaded mob switches regain their fonctionnality

best would be to have a 3rd setting, a...

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Are you saying that disabling Paper's per-player-mobspawning doesn't make it behave like Vanilla? Because I feel like if that's the case then the best would be fixing that, not adding a third mode.

Yes i am saying exactly that, and i would tend to agree, if this could be fix i don't see what would be the need to keep the outdated pre 1.18 spawn mechanics.
But i've been told on the discord it's more trouble than it's worth to fix : s

rustic folioBOT
#

It may be better to have a blanket fix that makes all entities respect the yaw/pitch on spawn?

Right so I thought about that, but I'm not sure how to go about it.. You've said before that the spawning logic should be cleaned up, so besides just making all entities respect yaw/pitch (by making sure entity.moveTo() is executed regardless of the entity type) is there anything else I could fix / clean up?

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Expected behavior

Treasure maps should always be filled regardless of whether the treasure has been found or not, which I believe is the vanilla behavior and default setting.

Observed/Actual behavior

After first treasure map was generated, subsequent treasure maps become effectively empty maps and only a name left.

Steps/models to reproduce

  1. Create a new world.
  2. Find several shipwreck and get the treasure maps.
    If we just create a new world, everything seems to work jus...
rustic folioBOT
#

Hey I have been working on the API locally on my PC, I copied by hand what you did from the files in your PR because the patch just wouldn't work. Should I do a list of what I added here or make a PR of my own? Anyways I'm mostly here to ask a few questions:

I am not sure what is not enough or too many methods for FluidData. There is a method in FluidState that returns the direction of the flowing liquid as vector and I wonder if I should add that to FluidData?

By "add FluidData m...

rustic folioBOT
#

Is your feature request related to a problem?

I'm wanting to use Paper as a base for a Minecraft server I'm working on, which will feature several custom plugins. I don't know Java very well, and I'd like to write plugins inside of Rust if possible.

Describe the solution you'd like.

If the Paper plugin API had a C interface, this would solve the problem just fine. I would be more than fine maintaining Rust bindings to the C interface, and having the C interface would also open up t...

#

This is pretty much not something we're interested in maintaining

On Wed, 2 Aug 2023, 17:59 Hunter Wittenborn, @.***>
wrote:

Is your feature request related to a problem?

I'm wanting to use Paper as a base for a Minecraft server I'm working on,
which will feature several custom plugins. I don't know Java very well, and
I'd like to write plugins inside of Rust if possible.
Describe the solution you'd like.

If the Paper plugin API had a C interface, this woul...

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Expected behavior

the minecart should just run to the end with no stuck

Observed/Actual behavior

the minecart just stuck and than run away for about 0.5~1 Second (the position that minecart will stuck i have used GOLD BLOCK to mark it,you can se it in the video below)

Steps/models to reproduce

bug video here
https://cdn.discordapp.com/attachments/996242655501619310/1136571135107027014/bug.mp4

Plugin and Datapack List

plugins
[16:08:01 INFO]: Server Plugins (0):
d...

rustic folioBOT
#

The bug occurs after the player is spawned for the viewer if the player is flying somewhere at that moment. In general, when a player is spawned for the viewer, he also receives a relative move packet in EntityTrackerEntry#sendChanges(), which shifts the player for the viewer. If the player's onGround state changes, then a non-relative move packet is sent that synchronizes the position for the viewers, this code can be seen in EntityTrackerEntry#sendChanges().

I tried to send "old" pos...

rustic folioBOT
rustic folioBOT
#

Expected behavior

The player who sends the message from bungeecord is supposed to be the same when the message is read from Paper.

Observed/Actual behavior

The player who is supposed to send the message becomes replaced by the player who has his nickname in the Bungeecord message.

Steps/models to reproduce

wtf
![wtf3](https://github.com/PaperMC/Paper/assets/91786781/184f43ff-6c53-4385-8...

rustic folioBOT
rustic folioBOT
#

What I did for now is just move the entity before returning it:

        if (entity != null) {
            entity.moveTo(x, y, z, yaw, pitch); // Paper - Set Entity Rotation
            return entity;
        }

However, looking at the code for spawning entities, sometimes it's Entity#setPos(x, y, z), Entity#moveTo(x, y, z, yaw, pitch) and Entity#entity.absMoveTo(x, y, z, yaw, pitch)

My code essentially overrides these statements, but I've tested spawning different ...

rustic folioBOT
#

Expected behavior

Action to pick up selected items should be a priority.

Observed/Actual behavior

Return to the player or note block before all items that Allay can find have been picked up.

Steps/models to reproduce

There is the video.
https://cdn.discordapp.com/attachments/803652566571024404/1136724078330392676/Minecraft_003_AV1.mp4

Plugin and Datapack List

plugins
[03:16:48 INFO]: Server Plugins (0):

datapack list
[03:17:00 INFO]: There are 2 data pack(s) e...

rustic folioBOT
rustic folioBOT
#

Spigot incorrectly instanceOf checks the EntityTargetEvent#getTarget against the internal ItemEntity type and removes the nearest wanted item memory if said instanceOf check fails, (which is always the case) causing allays to behave differently as they constantly loose their target item.

This commit fixes the faulty behaviour by instance performing a check against the CraftItem type.

Resolves: #9567

Additionally also resolves a not updated distance variable that was wrongly ported to...

#

This entire block can be made a bit pretty to look more like this:

     public static void sendInventoryTitleChange(InventoryView view, String title) {
+    // Paper start
+        Preconditions.checkArgument(title != null, "Title cannot be null");
+        CraftInventoryView.sendInventoryTitleChange(view, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(title));
+    }
+
+    public static void sendInventoryTitleChange(Inventor...
rustic folioBOT
#

Is your feature request related to a problem?

Many types of damage can't be detected for the Interaction entity.

Describe the solution you'd like.

Currently the EntityDamageEvent event for the Interaction entity is only thrown if a player hits the entity. I ask that the event be thrown also in all other cases of damage (explosions, arrows...).

Describe alternatives you've considered.

Use another entity together with the Interaction entity to receive these EntityDamageEvents, ...

rustic folioBOT
#

Expected behavior

Entity count in F3 should drop when leaving the view distance of text displays

Observed/Actual behavior

Entity count in F3 stays the same

Steps/models to reproduce

  1. Create a Paper server with a flat world and disable natural entity spawning (level-type=flat, spawn-...=false, generate-structures=false), also /op yourself
  2. Join the server, F3 should display E: .../1 (you are the only entity)
  3. /summon text_display, F3 should now show `E: ......
rustic folioBOT
#

I would suspect something similar to https://github.com/PaperMC/Paper/issues/8451 going on. The client crash in that issue is caused by the entities having high velocity when untracked, but root cause might be the same: Ticking stopping before they reach the end of the tracking distance, and as a result they aren't untracked properly. Spigot sets the tracking distance for displays to the relatively high value of 128 by default which probably makes this more likely to occur compared to the low...

rustic folioBOT
rustic folioBOT
#

Stack trace

[paste your stack trace or a paste.gg link here!](https://paste.gg/p/anonymous/a2d5b413d116419dbb38242755d40dbe)

why reason to cause this error? Is it plugins problems? or paper core?

Plugin and Datapack List

Server Plugins (84):
Paper Plugins:
Minepacks
Bukkit Plugins:
AntiCreeperGrief, BetterCommandSpy, BetterReports, BigDoors, BigDoorsOpener, BlockLocker, ccRides, ChestSort, ClearLag, CMI
*CMIEInjector, CMILib, CommandPanels, CoreProtect, CrazyAuct...

rustic folioBOT
#

You are
a) running an outdated version of paper we do no longer support
b) your server seems overloaded as the hologram plugin is causing a watchdog trigger.

This is not a problem with paper, your server simply isn't strong enough to support whatever the plugins are doing (or the plugins are the cause of the lag, who knows). Beyond that, GitHub issues isn't the place to discuss this. Feel free to ask on our discord for help, however make sure to run a supported version, e.g. 1.20.1.

rustic folioBOT
#

Introduce API for Mob Spawner support for AffectsSpawning to allow different type of spawning types. The reason for this as it would allow for the ability to only prevent natural spawns and keep mob spawns from spawners.

Originally I was just going to create another get/set, however, the code for checkDespawn is quite hard to change without breaking a previous patch hence I opted for editing original API by adding an extra boolean to the get (public void setAffectsSpawning(boolean affects,...

#

Introduce API for Mob Spawner support for AffectsSpawning to allow different type of spawning types. The reason for this as it would allow for the ability to only prevent natural spawns and keep mob spawns from spawners.

Originally I was just going to create another get/set, however, the code for checkDespawn is quite hard to change without breaking a previous patch hence I opted for editing original API by adding an extra boolean to the get (public void setAffectsSpawning(boolean affects,...

#

So I guess I would have to seperate this and make it seperately with a new set and get for this. I got stuck towards the section of src/main/java/net/minecraft/world/entity/Mob where you can't look at both. What I could do is seperate both so they are different but then again, this might also break API for those who use the method to get rid of all spawns which I want to prevent as well.

rustic folioBOT
rustic folioBOT
#

Nope, and I don't have a computer usable for working and testing so this
probably won't work for a while, best advice would be to use a plugin to
strip all incoming signature stuff id guess in the meantime

On Sat, 5 Aug 2023, 14:27 Alexander Möbius, @.***>
wrote:

Are there any news regarding this issue?


Reply to this email directly, view it on GitHub
https://github.com/PaperMC/Paper/issues/9463#issuecomment-1666506183,
or unsubscribe
<https://github.com/...

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

It seems like this is intentional, the snapshot article introducing interaction entities mentions that they "records attacks ("left clicks") and interactions ("right clicks")."

Though it is interesting that the NBT for left clicking is "attack" which somewhat implies that other attacks would work. MC-260763 points out these discrepancies, however it looks like Mojang has not tak...

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Expected behavior

When an entity is added EntityAddToWorld should fire once and EntityRemoveFromWorld should not fire

Observed/Actual behavior

When specific entities are loaded it will first call EntityAddToWorldEvent, then EntityRemoveFromWorldEvent and again EntityAddToWorldEvent for the same entity

Steps/models to reproduce

Easiest way I could reproduce it is simply spawning an entity and rejoining
Summoning it initially has no issues
But when rejoining it triggers the e...

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

The title changing generally behaves rather inconsistently when called in a InventoryClickEvent.
Here are a few run downs:

Bukkit.getScheduler().runTaskLater(this, () -> {
    event.getView().title(Component.text(Instant.now().toString()));
}, 1);

causes the client to loose the ability to collect items of the same type via double click.

event.getView().title(Component.text(Instant.now().toString()));

completely messes with the client server side sync, cau...

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Is your feature request related to a problem?

Ghasts cause server lag spikes when using nether portals.
https://github.com/PaperMC/Paper/issues/9173

Describe the solution you'd like.

It would be nice if there was a configuration to prevent specified entities from using the portal.

entities:
  behavior:
    prevent-entity-portal-use:
    - ghast

Describe alternatives you've considered.

I couldn't find any plugin that does this. It would be great if Paper could d...

#

Given that this is easily implemented via a plugin, there is not much of a point in us implementing this.
E.g. the snippet

@EventHandler
public void on(final EntityPortalReadyEvent event) {
    if (event.getEntity() instanceof Ghast) event.setCancelled(true);
}

would already achieve this.
I am not aware of a plugin that currently implements this, but given the simplicity (as stated before) I'll close this and leave it to up the plugin to implement :+1:

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Expected behavior

entity-per-chunk-save-limit can limit the number of boats

Observed/Actual behavior

[16:33:57 ERROR]: [MapSerializer] Could not deserialize key oak_boat into net.minecraft.world.entity.EntityTypes at [chunks, entity-per-chunk-save-limit]

Steps/models to reproduce

entity-per-chunk-save-limit:
oak_boat: 24

Plugin and Datapack List

null

Paper version

paper 1.20.1 build#108

Other

I can limit Minecart in the same way
If it's due to a for...

rustic folioBOT
#

This patch reduces the cost of broadcasting framed map changes to players by caching the map ID on the item frame itself, instead of reading it from the framed map's tag each time. Also reduces a bit of the logic done in tickCarriedBy for framed maps, since framed maps aren't going to have player decorations on them.

In a lot of spark reports I've seen the call to MapItem#getMapId(ItemStack) take up a few percent of the tick, which seems pretty weird despite it being a simple method, so if...

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

因为事情在主线程上诱导了io,以便找出在哪里处理门户,所以可以肯定已经有重复项,但这通常不是您可以在不破坏行为的情况下修复的内容

https://github.com/PaperMC/Paper/assets/135555687/d214cef9-fb41-487c-a54c-403db8fd11f3

I didn't have a noticeable lag when using spigot and vanilla, and MSPT reached 1000 when using paper
Pay attention to the piston

#

Would need a spark report showing all threads, but, generally this just
boils down to portals sucking of which there is little we can do, vanilla
will load the other side in its own in some cases, so hard to compare
behaviour directly

On Tue, 8 Aug 2023, 01:49 Max, @.***> wrote:

So I boldly assume, this should be a paper problem?
Can this issue be reopened


Reply to this email directly, view it on GitHub
<https://github.com/PaperMC/Paper/issues/9585#issuecomme...

rustic folioBOT
#

Would need a spark report showing all threads, but, generally this just boils down to portals sucking of which there is little we can do, vanilla will load the other side in its own in some cases, so hard to compare behaviour directly

On Tue, 8 Aug 2023, 01:49 Max, @.***> wrote: So I boldly assume, this should be a paper problem? Can this issue be reopened — Reply to this email directly, view it on GitHub <[#9585 (comment)](https://github.com/PaperMC/Paper/issues/9585#iss...

rustic folioBOT
rustic folioBOT
#

Expected behavior

On 1.20.1, flat bedrock doesn't work. Well, yeah, it's supossed to work, and make all bedrock flat. It works on 1.18.2.

Observed/Actual behavior

Bedrock generated normally, but it isn't supossed to. It's supossed to be flat.

Steps/models to reproduce

1.- Install Paper, 1.20.1
2.- Enable "flat-bedrock" setting. Set it to true.
3.- Dig straight down
4.- Cry because it didn't work

Plugin and Datapack List

ViaVersion & ViaBackwards. No datapacks.

P...

rustic folioBOT
#

The pos variable is reassigned in this method which makes it no longer the position of the source mushroom that's being ticked.

Before:

[Paper-Test-Plugin] Source: AIR, at Location{world=CraftWorld{name=world},x=-275.0,y=69.0,z=-223.0,pitch=0.0,yaw=0.0}
[Paper-Test-Plugin] New state: BROWN_MUSHROOM, at Location{world=CraftWorld{name=world},x=-275.0,y=69.0,z=-223.0,pitch=0.0,yaw=0.0}

After:

[Paper-Test-Plugin] Source: BROWN_MUSHROOM, at Location{world=CraftWorld{name=worl...
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

I am not sure what is not enough or too many methods for FluidData. There is a method in FluidState that returns the direction of the flowing liquid as vector and I wonder if I should add that to FluidData?

Yeah, I haven't looked too closely at what methods on FluidState could be easily added to FluidData. Probably getHeight, maybe getFlow.

By "add FluidData methods to RegionAccesor" you mean stuff like getFluidData(x, y, z)?

Yes, like all the methods BlockData has on RegionAcc...

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Cool, thank you! It does seem to work better, but unfortunately I still found some issues.


The change does fix the usual suggestions. Before, typing test a=1 would incorrectly suggest ,\ to make test a=1,\ , escaping the space character as you said. Now, test a=1 correctly suggests , to make test a=1, , which is the same behavior as the player.


One problem is that I can still trigger the exception from my previous comment. If I type test a=1,\ as the playe...

rustic folioBOT
#

I noticed this too. On my server I modified the paper.yml in the config folder to enable Piston dupes. It worked for rails and carpets now but not for TNT for some reason. I tried it in single player to make sure it worked and it does. I then tried it in craftbukkit, spigot, and paper. In all of them it doesn't. I wonder if craftbukkit/spigot changed something and it made it's way down to the rest.

#

@electronicboy
Dang. Do you know where I submit it for craftbukkit & spigot?
I know Spigot does both now but craftbukkit is broken too and it is suppose to be the one closet to vanilla server but still allow plugins. Then Spigot does some optimization and fixes and Paper takes it to the extreme.
They probably wont fix it in spigot but might for craftbukkit.

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

Expected behavior

They are some farms that work with the nether portal, on these farms, Entity must teleport from nether to the overworld and walk throw another portal and back to the nether. This problem happend after i update my paper it worked fine before. Can it be related to this commit maybe : https://github.com/PaperMC/paper/commit/408a9050baf29341b877a7bebff0939442d818d0

Observed/Actual behavior

Right now entity despawn immediately after teleport to over world

Steps/mo...

rustic folioBOT
#

Expected behavior

I would like to this problem be fixed somehow, thank you.
Or at least get some advice

Observed/Actual behavior

I dont know how to fix it or where to find answers, the last post about this issue was almoust a year ago.
A few players from my server being kicked for writing simple message or commands in chat for "out-of-order chat" (server console) (multiplayer.disconnect.out_of_order_chat in velocity console).
Some of them already used to it, but a few still pret...

#

Generally, ensure that the system time on your PC is correct. The players that are affected should do the same.
This is generally caused by a chat message being processed that claims to have been created before the previous chat message sent by said player.

Beyond this, you are using a no longer maintained version of paper, hence I'll be closing this.
Feel free to shoot by in our discord if you need further help if you decide to use a supported version.

rustic folioBOT
#

ok i downloaded World on my pc and i did some research and find out these kind of farms only works when there is no other player on over world when i play solo it worked fine and Entity not despawn but when there is someone on over world and basically more than 128 blocks away they despawn so can someone explain how despawn works and why when there is no one on the overworld entity not despawn and farms work fine ? is there any way to make these farms work

#

-1 mean unlimited, not disabled. In fact if the player let -1, it will calculate the maximum theorical value. Which is 9 x 9 x 3 in this case. It's better than letting the player calculate himself.

Source: https://minecraft.fandom.com/wiki/Mushroom#Spread

"When receiving a random tick, a mushroom has a chance of spreading to a nearby block (including even above and below diagonally) if there are fewer than five mushrooms of the same ...

rustic folioBOT
#

Just for your information, but this behavior is likely to be fixed in next Minecraft version, maybe 1.20.2.
In Minecraft Snapshot 23w32a, they added this note:

that is primarily intended for the client disconnecting itself due to an out of order chat message, not the server;

For velocity, this is generally a known bug but sadly I don't have hardware able to work on much atm, https://github.com/PaperMC/Velocity/pull...

rustic folioBOT
rustic folioBOT
#

As said before, I think it is worth looking into the ability to move away from the magic constant that is -1 simply for clarity reasons.
We introduced this originally when world heights allowed for negative values, -1 would work here for sure, given that the limit cannot be negative.
This is purely a discussion in regards to clarity to the end user, specifically if we want to stick to -1 here or if we want to look into potentially expanding our configuration API to allow for the usage of bo...

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

Timings or Profile link

.

Description of issue

MapItemSavedData#tickCarriedBy is currently used by both a map itemstack ticked inside an ItemFrame as well as the items in the player inventory.

Given that maps can be duplicated, MapItemSavedData#tickCarriedBy is potentially called multiple times per tick, for each instance of the map around (either in player inventories or item frames). #tickCarriedBy however is terribly designed in regards to the duplicate existence of the same ...

rustic folioBOT
rustic folioBOT
#

I think there is a much better way to fix this issue.

Instead of overriding getLocation, just make SimpleContainer#getLocation check if the field bukkitOwner is set to an instance of BlockInventoryHolder and if it is, return the location of the block. That covers all 3 composter container types (any any future block inventory holders that might not override getLocation).

Also this should be merged into an existing patch "Fix certain inventories returning null locations"

rustic folioBOT
#

If we can move the nextUpdatePacket method out of the MapItemSavedData.HoldingPlayer class we could skip adding to the carriedBy altogether, though I haven't checked how possible that is. Vanilla does check if the stack is framed before removing the player from the carriedBy list afterwards, so at least we're not adding and immediately removing players.

The stack.isFramed() && this.trackingPosition part of the method should definitely be moved out of the tickCarriedBy, since that doesn't...

rustic folioBOT
rustic folioBOT
#

I'm 99% sure that this was resolved by 990be1691b8b89295de56ed7ebda5d77aa43aac2, I haven't seen anyone else with this issue since then. If you're still experiencing this issue, please provide a new paste to the stacktrace (the previous one expired) so that this can be re-opened.

rustic folioBOT
#

I am going to close this as I don't think a secondary check here is really the way to go.
As you already laid out, this logic is rough to edit. Breaking API for this is also 100% not worth it, given how niche this API is going to be.

An alternative approach that I could see working in the future would be an event called before the spawner searches for nearby players. To counterbalance the performance impact, this event might also allow for the definition of a backoff cooldown from even se...

rustic folioBOT
#

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

CraftBukkit Changes:
b76ceb4f5 PR-1235: Move EntityType return to base Entity class
e795d7490 SPIGOT-7458: Exception when Entity CommandSender executes Vanilla command
46c7fc3b1 SPIGOT-7452: Player#openSign cannot edit
d91e5aa0b SPIGOT-7447: Rewrite --forceUpgrade to minimise diff and properly handle CraftBukkit world la...

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

The tree nodes do not need to know which parents that they are dependent on still exist, only how many still exist. Of course ReferenceOpenHashSet is also fast, but this feels a bit cleaner.

I left the IllegalStateException in, with its hypothetical effectiveness a bit reduced since it would occur later and with less information. But it can only occur is due to a bug in implementation of the RadiusAwarePrioritisedExecutor itself, and not due to any external bugs, and the RadiusAwarePriorit...

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

I am unable to reproduce this on 1.20.1. Chunks are unloaded and loaded only once, as expected.
Considering the chunk system has changed since 1.18.1 and the suspected code snippet you provided no longer exists, I am going to close this issue.

If you are able to reproduce this issue on latest (1.20.1) without any plugins other than a testing plugin, feel free to open a new issue.

rustic folioBOT
rustic folioBOT
#

See patch description for a breakdown of this.

To test the performance implications I used spark's profiler and tickmonitor both set to report ticks over 55ms. Doing 3 mass crafts without this patch resulted in this. With this patch, none of the crafts tripped the tickmonitor or profiler.

There are probably further improvements done. Like the slotChangedCraftingGrid static method in CraftingMenu is called 576 times to re-calculate the recipe for ...

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

香草中的错误导致被剪断的绊线进入奇怪的状态,请参阅 https://bugs.mojang.com/browse/MC-129055 在这种状态下,破坏绊线将不起作用,而是在再次连接之前断开绊线钩 10 个刻度。在这 10 个刻度窗口期间破坏绊线实际上会破坏绊线。

滥用这一点,用水反复破坏绊线,可以快速复制无限量的绳子,因为绊线在被水“破坏”时会掉落一根绳子。

似乎这种错误状态下的绊线以前被接受为一项功能,请参阅 #7259 和 #7261 此 PR 通过将一行代码向下移动到 Mojang 的空 if 语句中来解决此问题......如果我们想保留错误的“解除武装”绊线,则需要更彻底的解决方案,因为当前的“牢不可破”行为非常不直观。

下载此拉取请求的回形针罐:paper-9436.zip

Can confirm that it works fine.
fix https://github.c...

rustic folioBOT
#

Rewrites the tracking code for framed maps to remove the use of the tickCarriedBy method and the HoldingPlayer class. the tickCarriedBy method contained a lot of code that did not apply to framed maps at all, and by moving the parts that did elsewhere, we can essentially skip it.

The only issue that I've found so far is that decorations can stick around/desync when removed via /kill or Entity#remove, but this seems to also happen with the current behaviour to some degree (only with item fr...

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

Like written on Discord with @Machine-Maker , here the pull request to fix a startup crash and the runtime crash occuring around three minutes after startup, found while wanting to experiment with the experimental Paper branch.

Changes following things:

  • An erroneous change in the Custom-Potion-Mixes-Patch leading to a server crash at startup
  • A server crash occuring around three minutes after startup, coming from the timings system because of an unexpected exception of the type `jav...
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

I am able to reproduce this issue, with horses facing North/West specifically. The difference is very small however, even with a significant higher number of horses (200). Spark with horses going south/east vs. north/west.
Its not really an issue with horses specifically, pathfinding seems to be slightly slower in the North/West direction in general. Leashed horses just make it obvious because they strict...

rustic folioBOT
#

I am unable to reproduce this issue on the latest version of Paper (1.20.1-126) using the steps you provided. The scaled health displayed to the player gets updated correctly when switching to and from the helmet, and the amount of hearts does not change. It might have been fixed by chance, or was caused by one of your installed plugins.

Therefore I am going to close this issue for now. If you or anyone else is able to reproduce it (without any plugins), feel free to reply and it can be re...

rustic folioBOT
rustic folioBOT
#

This isn't exactly the right place for this comment, probably, but is there some way in which this event could either be cancelled, or toggled as "consumed" in such a way where interacting with an unknown entity stops all subsequent future actions? And/or maybe there's another way to already handle this. Examples are:

  • Right-clicking a packet NPC holding a consumable both interacts with it, but also you start eating.
  • Same thing but when holding projectiles (pearls, potions, etc)
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Additions

  • Material#getPlacedType - returns the type an item would be placed as (usually the same, but is different in some cases, e.g. pumpkin seeds -> pumpkin stem).
  • UnsafeValues#getPlacedType(Material) - bridge method for Material#getPlacedType.

Notes

  • Currently it returns a Material, as that's what's stored internally - might make sense to return BlockData to avoid potential issues with more complex data being added in the future/as it might make sense to rep...
rustic folioBOT
#

I think returning BlockData would be more appropriate if we had a method that called BlockItem#getPlacementState which returns the equivalent BlockData in nms (BlockState). For just this, Material is fine.


I guess since Material is just going to be straight up deprecated by upstream hopefully next major version, I don't really have an issue adding more methods to Material that only apply to items or blocks but not both

rustic folioBOT
#

I am curious, is there any reason why we shouldn't just copy ofver the logic used by /summon?
They basically do this:

                Entity entity1 = EntityType.loadEntityRecursive(nbttagcompound1, worldserver, (loadedEntity) -> { // Paper - remap fix
                loadedEntity.moveTo(pos.x, pos.y, pos.z, loadedEntity.getYRot(), loadedEntity.getXRot()); // Paper - remap fix
                return loadedEntity; // Paper - remap fix
                });
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Expected behavior

https://github.com/PaperMC/Paper/assets/73968499/87ec6571-97c0-442c-8568-c9938a325fb9

Observed/Actual behavior

https://github.com/PaperMC/Paper/assets/73968499/ff81df22-113e-4f89-977b-f204f2838613

Steps/models to reproduce

start paper server
stop the server
go to server files
open world folder
open datapacks folder
put Decapitation.zip into datapacks folder
[Decapitation.zip](https://github.com/PaperMC/Paper/files/12352691/Decapitation.zip...

rustic folioBOT
rustic folioBOT
#

Expected behavior

It is expected that players are unable to loot a chest more than once with the restrict-player-reloot configuration option set to true.

Observed/Actual behavior

Players can loot a chest more than once.

Steps/models to reproduce

Start a fresh 1.20.1 Paper server with build 119.

Set the following in paper-world-defaults.yml:
lootables:
auto-replenish: true
refresh-max: 15s
refresh-min: 15s

Log in, find a lootable chest and loot it.

Observe that af...

rustic folioBOT
#

Hopefully second try is the charm. With the feedback of lynxplay from my previous pull, I created a new Event which would act before the Spawner searches for nearby spawners.

This would:
a) allow to remove specific players from specific spawners in regards to their activation
b) allow spawners to skip player searching for n ticks (as specified by the backoff cooldown)
c) completely exclude players from affecting spawning on spawners.

I was also going to add NotNulls to the event but ...

rustic folioBOT
#

Expected behavior

Armor stands do not move when they are fixed in place using cauldrons.

Observed/Actual behavior

Armor stands in Paper get knocked even though they are fixed in place using cauldrons.

Steps/models to reproduce

Player provided the following schematic:

https://transfer.sh/p3GJlUr3x1/glass_prison_v3.litematic

Paste the following schematic in both vanilla and paper worlds.
Equip a sweeping edge 3 sword on your hand, get inside the machine and hit the armor...

rustic folioBOT
rustic folioBOT
#

Didn't realize it was so generous in detecting where you placed crystals, always thought it was just those exact blocks.

Yeah I was surprised too. Normally you can't place crystals in the other positions (one closer to the portal, which is above a portal block; or one below, which would be inside bedrock or a portal block), but if you do place them there (by modifying the portal bedrock/portal blocks in advance) it does work. The vanilla code checks for an entity in a bounding box that j...

rustic folioBOT
#

Is your feature request related to a problem?

My feature request is not related to a problem and is indeed my first feature request here also on GitHub so please don't destroy me ahah.

Describe the solution you'd like.

Currently, the ConfigurationSection class provides a get() method for retrieving data, which returns an object. However, I've encountered some challenges while working with this method, as handling the returned object can be quite complex and inconvenient.

To add...

rustic folioBOT
#

Ok, so there are a couple things to consider here. We cannot allow clients to send sign update packets with legacy codes in the strings. If we allow it, modified clients can just create colored signs whenever they want. So the alternative is to convert the legacy text to proper components when the sign tile entity is loaded. We already do similar things for itemstack names and lore.

This does mean that editing the signs won't show the colored text, but the root style is applied on the edit...

rustic folioBOT
#

The reason for the falling dripstone to not behave like the anvil is due to when the damagemodifer are added into the map. If you see where the event is prepared (CraftEventFactory#handleLivingEntityDamageEvent) the DamageModifer.HARD_HAT is not updated for falling stalactite, Bukkit explicitely only allow anvil and falling block to handle the 1/4 reduction instead of checking with the DAMAGES_HELMET type tag (to also include the falling stalactite damage type).

So in really there are two ...

rustic folioBOT
#

Is your feature request related to a problem?

I want detect the location of a light update, but I don't think there is a way to do this at the moment (I also asked the discord).

Describe the solution you'd like.

An event that would trigger when a light udate happens, it should contain the location of the light update, and maybe the previous block and skylight values.

Describe alternatives you've considered.

I am currently trying do detect it with block place/brake event, but ...

rustic folioBOT
#

Except we'd still need to create said events, and likely deal with extra
buffering due to how these systems work in order to produce useful results,
etc

Given the shockingly small usecases for this, this is probably a no go,
stuff like the physics event are problematic as is, we don't need something
that could throw like a hundred events because somebody broke or placed a
torch

On Wed, 16 Aug 2023, 23:09 Senne, @.***> wrote:

True, but the only other way I can think of is...

rustic folioBOT
rustic folioBOT
#

True, but the only other way I can think of is far worse and I would be able to end most event calls with one check.

This sounds like an x/y problem. What are you really trying to do and why would you need light updates to detect it?

I need to match a lot of display enties, I could check them every tick bit I would be doing a lot of useless work. I could also check every few ticks, but then it might lag behind.

rustic folioBOT
#

The title changing generally behaves rather inconsistently when called in a InventoryClickEvent. Here are a few run downs:

Bukkit.getScheduler().runTaskLater(this, () -> {
    event.getView().title(Component.text(Instant.now().toString()));
}, 1);

causes the client to loose the ability to collect items of the same type via double click.

event.getView().title(Component.text(Instant.now().toString()));

completely messes wit...

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

It seems like thanks to the changes that have been made to the chunk system, this issue is no longer present. I can confirm that the 3 methods shown in the jstacks (Block#setType, World#setKeepSpawnInMemory & Block#getState) all work fine now when ran from inside onEnable.

I don't remember too much of the details about this issue, but from what I put, it looks like one of the prerequisites is that the chunks involved have to be corrupted in such a way that a stacktrace is triggered to be...

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Is your feature request related to a problem?

It would be nice to add an option to set Piglin or Hoglin not to zombify in the overworld to paper-world-defaults.yml.

Describe the solution you'd like.

Add the config value

entities:
behavior:
# true or false
zombify-piglins-and-hoglins: false # default : false

Describe alternatives you've considered.

Add the config value

entities:
behavior:
# true or false
zombify-piglins-and-h...

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Expected behavior

Each player should be able to loot each world-generated chest at most once. After emptying the loot from the chest the first time, that player should see the chest as empty for subsequent re-opens. This is the behavior I saw for many years, until I updated the server to a new version a few days ago.

Observed/Actual behavior

After I updated my server recently, players reported that they were able to loot the same world-generated treasure chests repeatedly. Each tim...

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

This is fine, i don't except a getter to be mutable for a list (by default), and that wouldn't be useful here but for safety you can change the list to an unmodifiable one for the getter only.
The only missing thing is a small comment saying you copied the logic from hasNearbyAlivePlayerThatAffectsSpawning or you can keep your change to avoid two loops but in both case the list shouldn't be mutable by the plugin.

rustic folioBOT
rustic folioBOT
#

Thanks. I'm trying to create a run file to always start with the latest Paper, see the example that works fine but it's set to a specific build below.

I did read the docs but could not find an example there. It'd be really nice if you could help me with this and then post it to our documentation because I have seen many people ask for it.

@echo off

REM Set the URL to the latest paperclip.jar version
set "jar_url=https://api.papermc.io/v2/projects/paper/versions/1.20.1/builds/1...
#

I am unfortunately not able to reproduce the issue you're seeing, after downloading the map from the video description and switching the lever to enable the farm I was able to receive the drops while in the overworld on my own. Manually dropping a gold ingot through even gave me the bartering advancement.

If you're still experiencing this issue on the latest version, let us know so we can take a look at this again.

rustic folioBOT
#

just curl this https://api.papermc.io/v2/projects/paper/versions/1.20.1/, get the last entry in the array and then use that to build the url.

generally, for development setups (I assume dev setup since its winows), we recommend the run task gradle plugin which makes it all pretty painless, since it also automatically starts your plugin with the server without you havent to copy it over and maintains a cache of the paperclip jar nicely locally:
https://github.com/jpenilla/run-task

#

just curl this https://api.papermc.io/v2/projects/paper/versions/1.20.1/, get the last entry in the array and then use that to build the url.

generally, for development setups (I assume dev setup since its winows), we recommend the run task gradle plugin which makes it all pretty painless, since it also automatically starts your plugin with the server without you havent to copy it over and maintains a cache of the paperclip jar nicely locally: https://github.com/jpenilla/run-task

...

#

we recommend the run task gradle plugin which makes it all pretty painless, since it also automatically starts your plugin with the server without you havent to copy it over and maintains a cache of the paperclip jar nicely locally:
jpenilla/run-task

only issue I have is that it doesn't properly shut down if I click stop/rerun wich is just bruh.

that doesnt sound right, paper should gracefully shut down, consider opening an issue on t...

#

we recommend the run task gradle plugin which makes it all pretty painless.
only issue I have is that it doesn't properly shut down if I click stop/rerun wich is just bruh.

that doesnt sound right, paper should gracefully shut down, consider opening an issue on the plugin to investigate
will do once i get home from vacation

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

This is related to https://bugs.mojang.com/browse/MC-147694 but is only visible on spigot due to heavily changed damage logic (the DamageModifier API, and stuff around). In short vanilla always knockback the defender instead of the attacker but it's not noticeable in vanilla since the defender gets also knocked in the opposed direction and the hurtMarked is false anyway.
This logic however doesn't happen on spigot cause the damageEntity0 return false in this case and so the last knockback is...

#

Nobody should I cer use any 3rd party download link for obvious security issues. Only jars obtained from PaperMCs webservices are verified and not malicious. Rehosting the jars because you don't want to write a onliner in bash isn't a good idea, but we can't stop you, just make sure to follow our license.

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Expected behavior

The zombified piglin should count towards the hostile mobcap when spawned from a nether portal in the overworld.

Observed/Actual behavior

The zombie pigman does not count towards the hostile mob cap.

Steps/models to reproduce

  • Clear a large perimeter with /fill ~-128 -64 ~-128 ~128 300 ~128 air to prevent other mobs from adding to the mobcap
  • (I additionally used /fill ~-128 -64 ~-128 ~128 -64 ~128 black_stained_glass to have a floor to build on)
  • C...
rustic folioBOT
#

The mobcaps counts mobs only spawned naturally or during chunk generation while zombified piglins are spawned by the portal, which isn't considered a natural spawn therefore this works as intended.

You can change this behavior and count all mobs by changing the per-world setting count-all-mobs-for-spawning to true.

If you need any further help feel free to reply here, use our Discord or forums.

rustic folioBOT
#

The alternative is a configuration library like configurate.
I agree that the existing bukkit configuration API is not as indepth and powerful as it might need to be at times, but I don't see a point in us trying to design and maintain another configuration library when there is already a collection of external tools for this.

Configurate is already used internally, so technically does not need to be shaded. We talked about promoting it to t...

rustic folioBOT
rustic folioBOT
#

I don't think that there is really a way forward here, the configuration system is not tied to yaml, and there's no storage of the information that would even be required to make this a thing, you'd basically need to load it into a Node tree of some form, which, in the abstract sense, already exists with ConfigurationSection

The entire point of the bukkit configuration system was to provide a simple-to-use mechanism for loading a yaml file from the disk without having to learn snake or stu...

rustic folioBOT
rustic folioBOT
#

Expected behavior

When deleting end world and restarting the server, there should be a new dragon along with the newly generated end world.

Observed/Actual behavior

The end world restarts, but no dragon spawned.

Steps/models to reproduce

Delete "world_the_end" folder and restart server.

Plugin and Datapack List

none

Paper version

This server is running Paper version git-Paper-"307d05b" (MC: 1.20.1) (Implementing API version 1.20.1-R0.1-SNAPSHOT) (Git: 307d05b)

##...

rustic folioBOT
rustic folioBOT
#

Expected behavior

Using Ianxofour's gold farm, zombified piglins should go through portal in nether side and emerge in overworld before going into another portal, taking them to killing chamber above nether roof.

Observed/Actual behavior

Zombified piglins never appear in killing chamber. Am online alone on the server. Logged in with my alt at the same time and went to overworld side of zombie pigman farm, at which I can see the pigmen coming through the portal and instantly despawn...

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Yes, just checked and issue still persists without the GravityControl plugin. Gold farm is Ianxofour's design, he has a link in the video description for the world download. Here is the video: https://www.youtube.com/watch?v=uBpMwXVn6iY
Let me know if you need me to post the file myself, it's just slightly too big to upload directly. Also let me know if you need my world specifically. Thank you!!

rustic folioBOT
rustic folioBOT
rustic folioBOT
#

A separate and minimal event system is required for lifecycle-related registration, such as commands, the future Registry Modification API and other similar resources which are either registered once on startup or registered on startup and re-registered during a /minecraft:reload-type reload.

This PR includes dummy events as none are actually added yet. The Brigadier Commands API would use this. See the Test Plugin for how these dummy events can be used.


Lifecycle events are t...

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

How works as intended? You dont support datapack? set_count 0 is current value becouse remove item, also result from command is equal random roll. So all datapacks where is used this simple and easy way to get random number dont work. If you can't fix this now dont use works as intended, but its misleading for people who try find reson why downloaded from internet datapack dont work.

#

Cheers for the info.
I've realised this is actually a duplicate of another issue that was recently created (https://github.com/PaperMC/Paper/issues/9593), including using the same farm, so I'll be closing this issue. As mentioned in this issue by Lynx you can use this plugin to help.

Unlike you though, on latest Paper (default configs) I didn't have any issue with them despawning when coming through the portal when I had an account at both th...

rustic folioBOT
rustic folioBOT
#

It is, please check the most recent one.
List<org.bukkit.entity.Player> activatingPlayers = (List)world.getNearbyPlayers(null, (double) pos.getX() + 0.5D, (double) pos.getY() + 0.5D, (double) pos.getZ() + 0.5D, (double) this.requiredPlayerRange, EntitySelector.PLAYER_AFFECTS_SPAWNING); // Uses logic from hasNearbyAlivePlayerThatAffectsSpawning
This is what it was originally and I have reverted it back to this

rustic folioBOT
rustic folioBOT
#

It is a similar issue, but that person had other people online and tried to work the gold farm, so the despawning was happening due to the other people. I downloaded the otherside plugin, and the problem persists. The pigmen instantly despawn even though they are supposed to stay for 20 seconds by default. So, with and without plugins the nether teleportation does not work.

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#
+        if (!activatingPlayers.isEmpty()) { // Paper - Use PreSpawnerSearchEvent API

+            io.papermc.paper.event.entity.PreSpawnerSearchEvent preSpawnerSearchEvent = new io.papermc.paper.event.entity.PreSpawnerSearchEvent(io.papermc.paper.util.MCUtil.toLocation(world, pos), activatingPlayers, searchCooldownTicks);
+
+            if (!preSpawnerSearchEvent.callEvent()) return;
+
+            searchCooldownTicks = preSpawnerSearchEvent.getBackoffTicks();
+       ...
rustic folioBOT
rustic folioBOT
#

Is your feature request related to a problem?

I would like this feature added to allow players to grow crops without having torches or another light source of 9 near.

Describe the solution you'd like.

A light level value in the configuration file where users can specifiy the minimum light level to grow crops. Setting to 0 would practically disable the requirement of a light to grow crops.

Describe alternatives you've considered.

The light level of 9 is hard coded into Spigot ...

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

Expected behavior

1

Observed/Actual behavior

tested on 1.19.3,1.20.1,1.16.5
only works on 1.16.5

Steps/models to reproduce

 @EventHandler
    public void onTick(ServerTickStartEvent event){
        try {
            Thread.sleep(80);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

write the following code,and break a block

Plugin and Datapack List

[18:50:59 INFO]: Bukkit Plugins: (2):
[18:50:59 INFO]:...

rustic folioBOT
#

I do not like this feature request. There is a reason config for now is not exposed to the API, it is pretty much implementation detail, nothing in there is backwards compatible and I'd really not want to start setting that expectation by exposing it to some form of world creator API.

I think MMs suggestion here is correct. You can compute the world folder name (well by its name) . E.g. something like

final YamlConfiguration yamlConfiguration = new YamlConfiguration();
yamlConfi...
rustic folioBOT
#

can we use your code generation stuff to generate the keys?

Yes, absolutely. If we want to start using the code generation stuff, then we need to move away from putting all the constants in the same file as the actual type. So like in this case, CustomStatistics would be the holder class for all of them, while CustomStatistic would be in source. That way, the generation is just the keys, and doesn't have to include any methods.

rustic folioBOT
#

Along with the stuff currently in the TODO list I would like to request two more things to be considered.

  1. Adding some helper methods for suggesting things like the ones in net.minecraft.commands.CommandSourceStack. These are extremely useful for creating new argument types or for use in .suggests calls.
  2. Adding a command-prefix entry in paper-plugin.yml. I personally dislike having the prefix for commands capitalised simply because the plugin's name is capitalised. I am aware...
rustic folioBOT
rustic folioBOT
#

Given that this is easily implemented via a plugin, there is not much of a point in us implementing this. E.g. the snippet

@EventHandler
public void on(final EntityPortalReadyEvent event) {
    if (event.getEntity() instanceof Ghast) event.setCancelled(true);
}

would already achieve this. I am not aware of a plugin that currently implements this, but given the simplicity (as stated before) I'll close this and leave it to up the plugin to implement 👍
...

#

What is the difference between EntityPortalReadyEvent and EntityPortalEvent? Can EntityPortalEvent also prevent lag?

You can find this info on the Javadocs. The main difference is EntityPortalEvent can be used to teleport a mob from one location to another. What Lynx posted above is what you want to do if you wish to stops Ghast's teleporting.

If you have questions like this, or issue with performance, feel free to join the [Discord](https:/...

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

Stack trace

$ Java -jar paper-1.19.4-550
Starting org.bukkit.craftbukkit.Main
*** Warning, you've not updated in a while! ***
*** Please download a new build as per instructions from https://papermc.io/downloads/paper ***
java.lang.NullPointerException: Cannot invoke "jdk.internal.platform.CgroupInfo.getMountPoint()" because "info" is null
at java.base/jdk.internal.platform.CgroupSubsystemFactory.setMountPoints(CgroupSubsystemFactory.java:351)
at java.base/jdk.inter...

rustic folioBOT
#

Getting the nearest generated structure calls ChunkGenerator.getNearestGeneratedStructure, which contains a nested set of loops that iterate over all chunks at a specific chessboard distance. It does this by iterating over the entire square of chunks within that distance, and checking if the coordinates are at exactly the right distance to be on the border.

This patch optimizes the iteration by only iterating over the border chunks. This evaluated chunks are the same, and in the same ord...

rustic folioBOT
#

it's API, people disagreed on an aspect of the implementation, and rightly so; persisting stuff just because the API set it is pretty weird area and has wider implications on state that others might not be expecting over something that is usually never saved otherwise, we did present the option of adding a boolean to control that, but, generally people were busy, I was out dying, etc

rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
rustic folioBOT
#

因此,最好的选择真的是添加一个选项,让 Y 检查基本上是可配置的,而不是试图毫无意义地将两个系统结合在一起?

Hey, recently paper merged a PR and it feels great
tracking-range-y:
animal: default
display: default
enabled: false
misc: default
monster: default
other: default
player: default

Could you add a similar option for despawn-ranges(hard), which would be helpful for low simulation distances?
It would feel great

rustic folioBOT
#

Expected behavior

Explosions caused by i.a. should cause damage to nearby players

Observed/Actual behavior

Player receives knockback, but the only damage he earns is from the fallback, and not from the explosion itself

Steps/models to reproduce

Create a vanilla PaperMC server, set spawn-radius to 0 avoid it as a possible cause and spawn a TNT using e.g. /summon minecraft:tnt

Plugin and Datapack List

None

Paper version

[21:52:06 INFO]: Checking version, please wait...

rustic folioBOT
rustic folioBOT