#paper
1 messages · Page 1 of 1 (latest)
I've fixed the patch title, and updated the javadocs for both InventoryClickEvent and InventoryCloseEvent.
We just experienced the same, multiple times in a row. Same plugins, same method.
Converted to draft for now, I do not have the time to look into the faulty behaviour of minecarts when steered through an endgateway.
Replicable yea, we are passing the already retired entity scheduler to the freshly created tnt instance in the end dimension.
Expected behavior
item-frame-cursor-limit works correctly
Observed/Actual behavior
I have set item-frame-cursor-limit to 10, however maps can still be created with which the client hangs. Players do this with banners
Steps/models to reproduce
Just put up a lot of banners and create a map
, 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...
I wonder if there could be a usecase for have the counts separated but good enough for now
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...
That doesn't look like paper, and that error is something modifying what looks like attributes off the main thread
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?
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,...
Any chance that we will at least get an event for block changes? Right now there isn't really any way to catch blocks getting placed by structures :S
So, in a blank config it is default at 1, and in optimization guides they always say to set it to 2, kinda like its a delay multiplier. In the case of doubling the time it takes for mobs to spawn from specifically spawners I'd have to enter between 400 and 1600 or the average of the two? Idk I just don't understand why it would default to 1 in this case.
It's default to 1 because that's how Vanilla works. It's recommended to 2 because that value will not influence the behaviour in almost all cases but some edge ones.
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, @.***> ...
When will this feature be added to the library? @Machine-Maker
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?
Please do not open pull requests from the master branch, create a new branch instead.
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?
Stack trace
C:\Users\Lucaa\Desktop\SERVER>java -Xmx10G -jar mohist-1.16.5-1160-server.jar nogui
/\ "-./ \ /\ __ \ /\ _\ \ /\ \ /\ \ /_
\ \ -./\ \ \ /\ \ \ __ \ \ \ _ \//\ /
\ _\ \ _\ _\ _\ _\ _\/_\ \ _
// // // //// /_/ // /_/
Welcome to Mohist 1.16.5 ! - Mohist Developement Group - 1.16.5-1160, Java 52.0
Tip:...
You aren't using Paper, and you are using an outdated version.
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 ...
So is this a blanket fix that makes all entities respect the yaw/pitch on spawn?
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...
if your intent is to retain compat with spigot, have you tested with spigot? Stuff like this is generally down to the somewhat flawed implementation of how the state stuff is handled which is generally all handled by upstream
[PaperMC/Paper] New comment on issue #8467: Mob Switch - Mobs not prohibiting spawning of other mobs
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...
It seems that spigot accidentally fixed the helmet bug that Vanilla introduced (this is handled but a little bit too late to be taken in account for the final health). So that's why you don't get the same damage as vanilla for raw helmet vs boots for all your cases. I don't think it's worth to reintroduce the bug before reworking the damage modifier api.
[PaperMC/Paper] New comment on issue #8467: Mob Switch - Mobs not prohibiting spawning of other mobs
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.
[PaperMC/Paper] New comment on issue #8467: Mob Switch - Mobs not prohibiting spawning of other mobs
I think mojang added a bunch of logic in the same place as we did, and there was a general "we're leading to the same behavior here"; I would try to see if reverting the patch resolves the issue here, I have doubts that it would but, no idea; No hardware to test this myself
[PaperMC/Paper] New comment on issue #8467: Mob Switch - Mobs not prohibiting spawning of other mobs
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
[PaperMC/Paper] New comment on issue #8467: Mob Switch - Mobs not prohibiting spawning of other mobs
i smell a check for server wide mob cap missing in the code when beggining a spawning cycle but that's just an instinct
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?
[PaperMC/Paper] New comment on issue #8467: Mob Switch - Mobs not prohibiting spawning of other mobs
idk i have no clue what's the exact difference between paper per player mob spawning and mojang per player mob spawning, i just know yours was first and you didn't update it when mojang got theirs (got that info from staff member on discord) and somehow this difference is enough to stop remotely loaded mob switches from preventing spawning in a dimension
Ok, I will look into getting this updated and the suggestions incorporated soon™️
Thank you for your PR. Make sure you don't modify any imports; use fully qualified imports instead. I also don't think caching the fluid here is necessary
Thanks for the comment!
Will change the imports. And i cached the fluid to mimic the cachedMaterial value that was already present. Other than that I will probably close this PR because I found out that MachineMaker made a draft PR for a FluidState API.
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
- Create a new world.
- Find several shipwreck and get the treasure maps.
If we just create a new world, everything seems to work jus...
Yeah, you're right - opened an issue upstream for this.
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...
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...
As cat said, this is nothing that fits this project as it is far outside of scope, nor do we have the capacity to maintain such an API.
I'll be closing this issue hence, I hope you can understand as to why :+1:
For reference, this has been fixed in 23w31a.
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...
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...
[PaperMC/Paper] New comment on issue #9565: minecart stuck strangeness while running on powered_rail
There really isn't much to go off of here.
Can you provide the world this occured in ?
[PaperMC/Paper] New comment on issue #9565: minecart stuck strangeness while running on powered_rail
sure, how can i send the world to you?
google dirve ok?
[PaperMC/Paper] New comment on issue #9565: minecart stuck strangeness while running on powered_rail
Yea, upload the world as a zip or tarball somewhere, be that google drive or maybe it is small enough to just be uploaded directly to github :+1:
[PaperMC/Paper] New comment on issue #9565: minecart stuck strangeness while running on powered_rail
the factory is at World X:7495 y:185 z:-4053
world here
https://drive.google.com/file/d/1bSx9vtRtOk60oxwKvjxbjFSWrDBaQwuq/view?usp=sharing
[PaperMC/Paper] New comment on issue #9565: minecart stuck strangeness while running on powered_rail
put some itmes that can cooked (64x3) in the tube to start the machine :D
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
 {
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 ...
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...
Please do not open pull requests from the master branch, create a new branch instead.
Honestly, I am not entirely sure if I changed the method CraftInventoryView.sendInventoryTitleChange(InventoryView, String) correctly for future work, because I decided to move from duplicated code, so, please, let me know how it is better to resolve such things.
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...
Can't test, but, based up on what I saw elsewhere, lgtm
Welcome to paper :tada: grats on your first PR!
A few comments in the patch, beyond that generally, this change should live in the existing Adventure patch instead of being its own patch.
See the CONTRIBUTING.md on how to modify an existing patch.
No need to annotate internal methods for deprecation.
(Repeats in a few spaces in the patch)
Same here, probably best to just delegate this to the paper method to reduce duplicates.
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...
Wouldn't it be smart to just invoke title() here with the result of the legacy deserialisation ?
"tested" it by compiling and joining which works.
discord conversation: #paper-dev message
Yep, your analysis is spot on. Looks like somehow the fallback value in BooleanOrDefault was just completely ignored. Will be fixed with https://github.com/PaperMC/Paper/pull/9572
81619a6 Fix treasure map config default (#9572) - Machine-Maker
This is actually a duplicate PR (https://github.com/PaperMC/Paper/pull/9330). Since that one was made first, and they do the exact same thing, I'm going to close this one.
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, ...
I restored the old proxied snapshot versions of the velocity natives. there is no guarantee that they will stick around forever. old versions are unsupported for a reason. people should migrate to supported versions.
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
- Create a Paper server with a flat world and disable natural entity spawning (
level-type=flat,spawn-...=false,generate-structures=false), also/opyourself - Join the server, F3 should display
E: .../1(you are the only entity) /summon text_display, F3 should now show `E: ......
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...
ansi 1.0.3 introduces detection for Windows Terminal usage (via WT_SESSION) and relies on jansi's presence to potentially detect other settings (such as Windows conhost)
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...
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.
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,...
Please do not open pull requests from the master branch, create a new branch instead.
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,...
[PaperMC/Paper] New review comment on pull request #9578: Add-Mob-Spawner-support-to-AffectsSpawning
If I see this correctly you want to do this?
+ return !entity.isSpectator() && entity.isAlive() && entity instanceof Player player && player.affectsMobSpawnersSpawning;
It looks like you made changes to the API of Paper but the patch for that is missing
[PaperMC/Paper] New review comment on pull request #9578: Add-Mob-Spawner-support-to-AffectsSpawning
At the moment this would be an API break.
[PaperMC/Paper] New review comment on pull request #9578: Add-Mob-Spawner-support-to-AffectsSpawning
At the moment this is unused?
It looks like you made changes to the API of Paper but the patch for that is missing
Oops I must've had it on the wrong directory, my bad.
[PaperMC/Paper] New review comment on pull request #9578: Add-Mob-Spawner-support-to-AffectsSpawning
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.
[PaperMC/Paper] New review comment on pull request #9578: Add-Mob-Spawner-support-to-AffectsSpawning
Kind of? I want to make it only impact Natural Spawns and not spawns from Spawners themself.
[PaperMC/Paper] New review comment on pull request #9578: Add-Mob-Spawner-support-to-AffectsSpawning
Thanks! Will resolve this.
Are there any news regarding this issue?
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/...
Not too important of an issue since it's 100% visual but nice nonetheless, fixes MC-84789.
All these methods use the raw version of BanEntry and have conflicting nullability contracts.
While the raw BanEntry could be fixed, the conflicting nullability contracts would require larger changes that I'm not sure we want to make.
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...
[PaperMC/Paper] New comment on issue #9565: minecart stuck strangeness while running on powered_rail
Given it a try as well, sent about 20 minecarts and hasn't once got stuck
This constructor is missing the api status annotation the other event has
Are you still able to reproduce this in 1.20.1, and without any plugins?
Can confirm that this happens, however unlike in your case I can perfectly reproduce this on the latest version of Spigot as well. Interestingly, following what Malfrador mentioned, if you reduce the tracking distance for displays down from 128 to something much smaller (for example, I tried 32) the entities are untracked properly.
When will this feature be added to the library? @Machine-Maker
An alternative method of doing this will be added via https://github.com/PaperMC/Paper/pull/9548 when merged.
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...
I can confirm this behavior. I had to restart the server after spawning the entity, but I could the add/remove/add behavior when I joined and caused the chunks to load.
This is a vanilla issue MC-227945 which has been reported numerous times, and is fairly harmless at that. This doesn't have anything directly to do with /kill although it is likely that loading the respawn chunks could have triggered it.
Can you provide a link to a world download that has the issue? Also specific coordinates if relevant.
2fa8efc Updated Upstream (Bukkit/CraftBukkit) (#9485) - Machine-Maker
508a295 Only erase allay memory on non-item targets (#9... - lynxplay
31358d5 API for updating recipes on clients (#6463) - Machine-Maker
8fe8ca6 Add clickable version on version command (#9347) - TheMeinerLP
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...
I updated this PR to not expose the "fake" UUID to the API in the show entity event. Basically it sets and resets the "fake" UUID right before and after sending the player info update packet.
[PaperMC/Paper] New comment on issue #9565: minecart stuck strangeness while running on powered_rail
that,s weird,do you sent the minecarts by throwing items to the pipe or just place a new minecraft on the rail?
it looks like it will onely stuck when sent the minecarts by throwing items to the pipe
Closing this given it has gone rather stale :sweat:
d6d2b6f Only capture actual tree growth (#6464) - Machine-Maker
If you dont change the line, as dumb as it'll look, keep the original indent of those particular lines so it's clear it is unchanged/no diff
[PaperMC/Paper] New review comment on pull request #9578: Add-Mob-Spawner-support-to-AffectsSpawning
I believe I have changed this, however, I am unable to figure out how to change the section listed (CheckDespawn) and SkeletonTrapGoals "canUse" section as it seems pre hardcoded in and I'm not too sure how to change this.
[PaperMC/Paper] New comment on issue #9565: minecart stuck strangeness while running on powered_rail
Throwing items in as shown in your video
build-pr-jar
Can confirm that it works fine.
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:
There is a lot of extra logic in moveTo that isn't in setPos. I think instead, you should just change the pitch and yaw individually with setYRot and setXRot.
An example of the logic in moveTo, is to record the old position to run any logic around something actually moving.
So no chance to find something in paper that allows to use interaction entities in this way? Even just a boolean in the entity?
Is this still being worked on? Or can this be closed? I want to create a new website where new Minecraft plugins and data packs for PaperMC can be created, so I need this PR updated to 1.20 and merged to create the website.
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...
This is also to prevent some players from maliciously piling up Boats and causing server lag
oak_boat is not an entity type.
There is boat and chest_boat respectively.
Can you try configuring those ?
boat
oak_boat不是实体类型。分别有和有。您可以尝试配置这些吗?
boat``chest_boat
Thank you for the answer, following your method, now solved
paper already supports datapacks. this PR only adds support for plugins to provide a data pack, instead of requiring the server admin to place the datapack in the right folder. for more info please join our discord.
and yes, this PR is still something we want.
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...
Can you please add obf helpers for f & f1, same below
After this change it'll be ready for merge :-D
Should be fixed by upstream and included in Paper with 2fa8efce9b49bc060e3d332b47f454dadc70188e
Timings or Profile link
https://spark.lucko.me/DHEE75WDg6
Description of issue
I've been troubled by this problem for a long time, but I can't analyze the reason
Sometimes it appears, sometimes it lags slightly, and I don't know what went wrong
Can you analyze it
https://github.com/PaperMC/Paper/issues/9265
This answer is a bit incoherent. I'm not sure if the two are related
##...
https://spark.lucko.me/lIrwqTGILS
This is another server's report
Because the thing induced io on the main thread in order to figure out where to deal with the portal, pretty sure there is already duplicates about this, but it's generally not something you can fix without breaking behaviour
因为事情在主线程上诱导了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
So I boldly assume, this should be a paper problem?
Can this issue be reopened
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...
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...
No, as I said, it needs to show all threads. It’s doing io from the main thread, that’s the obvious part, I wanna know what the chunk systems threads are doing.
chunk systems
Can you tell me what I should do
I don't know how to do it >_<
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...
@kennytv Please merge :-D
5274ad6 Add and implement PlayerFailMoveEvent (#9535) - Moulberry
408a905 Don't put entities removed during the portal ex... - kennytv
Resolved by 408a9050baf29341b877a7bebff0939442d818d0
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...
Expected behavior
the fireworks will be spent
Observed/Actual behavior
Fireworks stays and boosts me on elytra. ElytraBoostEvent doesn't work I checked it
https://youtu.be/19lunh9Tzqg
Steps/models to reproduce
Download the meteor client and enable BoostElytra
Plugin and Datapack List
No
Paper version
https://github.com/PaperMC/Paper/commit/408a9050baf29341b877a7bebff0939442d818d0
Other
No response
Because the firework isn't actually used as far as the server is concerned, this is pretty much just peak "movement is handled by the client"
Because the firework isn't actually used as far as the server is concerned, this is pretty much just peak "movement is handled by the client"
But it speeds up the client
Yes, because the client thinks that it itself used the boost, once again, this is peak "movement is handled by the client"
+ * creating a new block but ageing itself.
+ * The block can be null when the block grows without
93cf3eb Respect randomizeData on more entities when spa... - Machine-Maker
a2002a7 Fix wild wolves not considering bones interesti... - Warriorrrr
The javadocs for these methods are very confusing I think.
I think this would probably be more useful if it returned a Block. The javadocs even say Gets the block.... I think the usual usecase is gonna be to check the type. CraftBlock is just a wrapper so cheap to create.
98c567f Use correct seed on api world load (#9541) - Floppy012
@willkroboth Ok, I think I fixed your issue. It came from your suggestions including a trailing space. The console completion library tries to "escape" any space character inserted in a suggestion as spaces are the delimiter between 2 arguments, not part of a suggestion for an argument.
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...
Should have been fixed by the upstream update.
If something is still off, feel free to comment, we'll happily reopen the issue :)
This update introduces a mushroom configuration to the Paper world, providing users with the ability to bypass the standard vanilla spread limit. This customization allows users to exert more control over mushroom spreading, potentially leading to increased mushroom growth within the designated area.
Please do not open pull requests from the master branch, create a new branch instead.
This update introduces a mushroom configuration to the Paper world, providing users with the ability to bypass the standard vanilla spread limit. This customization allows users to exert more control over mushroom spreading, potentially leading to increased mushroom growth within the designated area.
Welcome to paper :tada:
Thank you for your first PR! A few notes on the PR in general, tho generally I like the idea.
New configuration options should be added to the paper configuration patch, not the patch consuming the config option.
Why is the definition of i moved below the iterator and flag creation ? This just seems like added diff for no reason.
What is the point of this ? This variable is never used again.
I think IntOr.Default would fit a lot better here.
This is a copy paste mistake, I'll remove it
UTF-8 issue, i'll change
Do you mean I should do a patch with the config, & then another patch that will use it ?
The diff in question here should live in the https://github.com/PaperMC/Paper/blob/master/patches/server/0005-Paper-config-files.patch patch.
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...
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.
to my understanding, spigot accidently fixed this while patching something else; theres generally little interest on our side to re-add bugs, so this is pretty much a "wont fix"
@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.
Spigot have a JIRA: https://hub.spigotmc.org/jira
You can use this to report issues
Thank you very much @olijeffers0n!
This update introduces a mushroom configuration to the Paper world, providing users with the ability to bypass the standard vanilla spread limit. This customization allows users to exert more control over mushroom spreading, potentially leading to increased mushroom growth within the designated area.
As stated on the other PR, this should probably be a IntOr.Default.
We generally want to move away from magic values (like -1 for disabled or the 5 being defined in here)
I don't see the point in moving this down here ? Keep the logic where the initial i was defined so the removal and addition are in the same spot.
I tryed, but I can't use any IDE with Paper, I have a gradle issue with my IDEA. I looked for examples, but I haven't found.
Cab you share a spark report of this ? Given that these are two reads to a Object2ObjectOpenHashMap and the caching PR is not the prettiest due to the nature of moving this to a cached state, I'd like to look into the report a tad before accepting/looking into a caching report.
9bc70e6 Make the cursor limit option apply to banners (... - Warriorrrr
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...
Please replicate this without plugins. The change in question should not really have affected anything beyond plugins cancelling the EntityPortalExitEvent
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.
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
Alright, so presumably the same issue as per usual: #6456, I'll be closing it as a duplicate.
You can checkout https://hangar.papermc.io/Kyle/Otherside, or generally ask around on our discord.
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:
- Clients will no longer disconnect themselves when receiving an invalid chat message
- A placeholder message will instead be shown in chat
Sorry for sending message in closed issue!
-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 ...
Wouldn't "disabling'" a spread limit imply it to be, well, not be a factor? If my spread limit is the "default" I expect it to be vanilla, if I set it to 3, I expect it to be 3. If I disable it I expect it to not be enforced, allowing it to spread as far as possible.
I can add a simple setting like "disable-limit" which would ignore the spread-limit option, and then set it to the maximum (993). What do you think?
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...
@Machine-Maker do you think it is worth looking into some addition IntOr to allow for both "disabled" and "default" here ?
No, because if the player put -1, like a few other paper/spigot settings it's disabled by default. In my case this will works. If the player put -1 or 1000 or 1M it will disable the limit.
But it still possible if needed for more clarity
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...
In testing this patch, we observed a lot of performance gains as we have a lot of item frames.
Here is a spark report for before we merged the patch - https://spark.lucko.me/xhfPrGtMz0
I'll include one after, once I can replicate close-ish the player count and entities. :)
Oh I understand, yes you can add something like that. But I think it's more simple for a user to understand a field to enable/disable, & a field with the value when enabled.
We'll wait for some more input on this, beyond that, the PR generally looks good tho, I'll have to think about the naming of the config option, given that spread limit could also be interpreted as "the radius" of the spread.
Yes sure. The limit is not really easy to understand. I made a lot of test, in fact the limit is almost useless.
Minecraft will check in a 9 x 9 x 3 radius if there are already 5+ mushrooms. But it will trigger for all of them (all mushrooms can spread). I was looking to add an option to change the radius, but it's useless with spreading recursivity.
It's still present in Paper-117
Yeah, I think in this case an IntOr.DefaultOrDisabled would be nice. I, by far, prefer using words instead of random constants. You never know what might change in the future. Like plenty of -1 to disable some height thing broke when y went below 0. It's best to use disabled or default to convey precise meaning.
Expected behavior
paper blocks string duper
Observed/Actual behavior
string duper works
Steps/models to reproduce
1.create string duper like this schematic https://www.mediafire.com/file/efpnyauyhwl3yz1/Unnamed111.litematic/file
2.click on the string with the shears
3.pull the lever
Plugin and Datapack List...
Are you currently trying to ask how to perform string duplication on a github issue related to fixing string duplication ?
Are you currently trying to ask how to perform string duplication on a github issue related to fixing string duplication ?
shit man sorry 🤯
i know how to perform but it doesn't work in paper mc server so that's why I'm here
Not really needed. removeFramedMap is more of a side effect of removal of an item.
onItemChanged is called whenever the item in the frame changes, which should be exactly what this cache is after. Given that getMapId returns null for non map items, that call would work as both the setter and reset.
Expected behavior
paper blocks string duper
Observed/Actual behavior
string duper works
Steps/models to reproduce
1.create string duper like this schematic https://www.mediafire.com/file/efpnyauyhwl3yz1/Unnamed111.litematic/file
2.click on the string with the shears
3.pull the leverPlugin and Datapack ...
I tryed to build the paper on my side i got the same error, without my commits BTW. Is the WorldConfiguration broken?
When looking into fixing #9507 I noticed a lot more statistic criterion than just the play time were broken by the 'naive' enum -> key conversion. See the wiki for the full list, everything that doesn't match with the enum is broken.
Rather than having to update the entire enum with the correct names in the way lynx showed in this comment, I...
For context; CraftStatistic#getNMSStatistic only allows looking up untyped statistics. Typed statistics don't/shouldn't work with the Criteria#static method anyway, as described in the javadocs, so this keeps the same behavior as before.
As this is my first contribution to Paper I am open for suggestions for naming the patch or perhaps telling me if there is already an existing patch to merge this into.
Fixes #9437
3b4839e Fix players are invisible after using setPlayer... - montlikadani
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 ...
[PaperMC/Paper] New comment on pull request #9596: Add getLocation to the composter output container
Thank you for the PR! I haven't looked into this fully yet, but wouldn't the input container below it also need it overridden?
[PaperMC/Paper] New comment on pull request #9596: Add getLocation to the composter output container
Yeah, you were right. I only tested this with the composter as the source inventory, but not as the destination inventory
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"
I cannot reproduce this on vanilla 1.20.1.
If you can, please feel free to reply to this issue with a world that this works on and we'll reopen it.
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...
Added IntOrDefault as asked
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.
20a71c5 Add restrict-player-reloot-time config (#7652) - Machine-Maker
@zhro Are you still able to produce this issue on the latest version of Paper 1.20.1 or newer? Paper has a new ANSI serializer which has improved terminal environment detection.
29aaf7b Fix custom statistic criteria creation (#9595) - NoahvdAa
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...
40e5dd4 Updated Upstream (CraftBukkit/Spigot) - Machine-Maker
[PaperMC/Paper] New branch created: update-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
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...
02338e5 Fix DEFAULT getEntitySpawnReason for /summon (#... - Warriorrrr
With the position PR merged, this could probably be looked at again.
Closing this since it isn't really a paper issue, your custom map has block entity data at locations where there aren't actually block entities. If you want to get rid of the errors, you can use a plugin like chunky to do a one-time load of all your chunks, but they should be safe to just ignore.
Maybe this should be a static method also taking the x y and z (left, up, forwards).
That way we don't have to allocate another throwaway object when calling this.
Have you tried setting the max-tnt-per-tick option to -1 in the spigot.yml file? If you have more tnt than the default of 100 it's going to cause multiple explosions like you're seeing.
A world download would also be appreciated to make reproducing this easier.
Not really much that can be done here given from where the event is called, running the setItem a tick later like MM said is the easiest workaround for this issue.
Leaving the original i = 5 and using the i as the default in the .or might look a bit cleaner, but generally looks pretty good.
[PaperMC/Paper] New comment on pull request #9596: Add getLocation to the composter output container
When the entity implements InventoryHolder and Container, the getLocation call is handled by CraftEntity.getLocation, but the special case here is the horse where the (Simple)Container is not extended but just created.
You should be able to workaround this issue by using a java version higher than 17, since the check added by spigot doesn't cover those.
This update introduces a mushroom configuration to the Paper world, providing users with the ability to bypass the standard vanilla spread limit. This customization allows users to exert more control over mushroom spreading, potentially leading to increased mushroom growth within the designated area.
I created a new PR with all new changes from Paper/master for better lisibility & workflow on my side.
WOOO so happy this was merged, thank you!
I don't know if I should check the context like this or with context != ContainerLevelAccess.NULL, although this would permit for other implementations that would return null
Don't do beacon like this. The correct solution is to add a block inventory holder for beacons, which is done here https://github.com/PaperMC/Paper/pull/7400
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...
This PR add the get/set method to LargeFireball to the explosion power, if not wrong the only way to get that value is if the shooter is a Ghast but this not apply to custom LargeFireball generated.
This PR starts because wanna get the radius.. in another entites are more hardcoded..
For future reference, you don't need to recreate the PR just to include the latest changes, just rebase your branch on the upstream master branch. Then you can force push to this branch.
Like I mentioned in your previous PR, I think it would be better if this was combined into 1 setting. Then it wouldn't need a new section. You can create an IntOrDefaultOrDisabled which can be default, disabled or an integer.
You can model that type based on the existing types, just add another constant string value that is valid.
Reverted that last change again. I was thinking about doing it like that, but that was way more complicated than I thought and felt like the beacon was a bit more comparable to the composter.
But otherwise is this ok?
Feel free to add yourself as a co author on the patch. I'll probably merge that PR I mentioned into this patch after.
To add yourself, just put Co-authored-by: into the patch commit message.
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.
This is kinda redundant with getYield/setYield ?
This is kinda redundant with getYield/setYield ?
Oh yeah... I confuse because see in another place the explosionPower, explosionPowerRadius and now like say the yield.....
XD
Fixes https://github.com/PaperMC/Paper/issues/8611
I think this is the best way to check if the world is a nether-like world. I don't really want to use the World$Environment enum as that will go away at some point in the future.
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 ...
a73ed95 Updated Upstream (CraftBukkit/Spigot) (#9598) - Machine-Maker
[PaperMC/Paper] branch deleted: update-upstream
[PaperMC/Paper] New branch created: useunknownentity
Fixes the event being called 4 times (2 per hand) when a player right clicks with no difference to the event data. Also adds some javadoc and removes an unnecessary access transformer
+ * Returns the entity id of the unknown entity that was interacted with.
+ * Useful for plugins dealing with virtual entities (entities that aren't actually spawned on the server).
Should we be adding MCUtil helpers for position creation (from Vec3 and BlockPos respectively) if we want to expand the usage of position here ?
I can't do that for the moment. I'll ask someone on the discord.
2d999fc Fix jd, add MCUtil methods for Position - kennytv
38db40b Update patches/api/0036-Add-PlayerUseUnknownEnt... - kennytv
香草中的错误导致被剪断的绊线进入奇怪的状态,请参阅 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...
您目前正在尝试询问如何在与修复字符串重复相关的 github 问题上_执行字符串复制_吗?
狗屎人对不起🤯,我知道该怎么做,但它在纸MC服务器中不起作用,所以这就是我在这里的原因
https://github.com/PaperMC/Paper/assets/135555687/a2b7fbec-6c51-4c39-8f17-1cc23909aa73
Looks good apart from the fact that it doesn't compile
+ public static FinePosition toPosition(Vec3 vector) {
+ return Position.fine(vector.x, vector.y, vector.z);
+ }
+
+ public static BlockPosition toPosition(Vec3i vector) {
+ return Position.block(vector.getX(), vector.getY(), vector.getZ());
+ }
this doesn't compile
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...
#9548 I see that claim numbered has been corrected. So how can I make the block artificially break without dropping any items, how does that solve my problem and how can I use it? @pop4959
Use the STEP_SOUND effect with the block data after you set the type of the block. That will change the block while playing the effect.
I think the vector in the packet is a relative vector to the armor stand, it's not a position.
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND);
I don't quite understand, what data should I enter in the data section? Will it break the block proper to BlockData? can you send me a sample? @Machine-Maker
You need to supply the BlockData for the block you want to break as data
Considering that #8402 which this duplicates was not able to be reproduced, and that this issue doesn't contain many extra reproduction steps/environment, I'm going to close this issue. Please create a new issue if you manage to figure out precise steps to reproduce the issue.
<img width="736" alt="resim" src="https://github.com/PaperMC/Paper/assets/101702786/dd60967c-f945-4b9b-8da8-77330161d0b3">
thanks this worked.
I've been running the sorter for a while with the rails on a chunk boundary and couldn't reproduce this. Please make sure the issue still occurs on the latest version of Paper, and if it does feel free to reply to this issue with the world and we'll reopen it. For now, closing.
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...
Closing this since event constructors aren't considered API due to how often parameters may change, we wouldn't want to incentivize this by adding a shorter constructor/helper method. The method posted by lynx seems like a fair workaround that wouldn't require any changes on our end.
This was implemented by upstream in https://hub.spigotmc.org/stash/projects/SPIGOT/repos/bukkit/commits/ecfa559ae8821e3e2677fe168b536333f71149aa, adding component methods is currently tracked by #9189.
Followed the reproduction steps and placed about 98,000 furnaces in a single chunk, was not able to reproduce the error when leaving and re-joining/moving away and back, so I'm going to close this as resolved.
Considering the age of this report and the changes that have been made since I'll have to close this, if you can still reproduce this on the latest version feel free to open a new issue, with ideally logs and a new jstack.
This issue has gone a bit stale, the spectatorsGenerateChunks gamerule currently doesn't do anything anymore (see #6657), nor is it likely to make a return, so I'll close this.
Warning messages are logged for good reason, and we'd rather not add a config option that could make debugging harder. If you want to filter out specific lines from your console, it's recommended to use any of the many log filter plugins out there.
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.
This was implemented by upstream in https://hub.spigotmc.org/stash/projects/SPIGOT/repos/bukkit/commits/ecfa559ae8821e3e2677fe168b536333f71149aa, adding component methods is currently tracked by #9189.
So spigot does update the api with new functions. So this will update the title while the inventory is open?
If the inventory supports it, yeah
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...
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...
This has been added by upstream, including the hide-by-default API. Also see the discussion in the PR #6000.
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)
Isn't the timing stuff subject to be replaced with spark? So any changes to that would be kind of a waste of time. Or not?
Isn't the timing stuff subject to be replaced with spark? So any changes to that would be kind of a waste of time. Or not?
Yes it should be replaced in the future as I read, but until it is replaced it should not lead to server crashes. The EntityType change was mainly for the reason that BlockType and EntityType are similiar.
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 forMaterial#getPlacedType.
Notes
- Currently it returns a
Material, as that's what's stored internally - might make sense to returnBlockDatato avoid potential issues with more complex data being added in the future/as it might make sense to rep...
It'd be best if you created an issue for that
Other than that, looks good.
I skipped the timings stuff cause it is all deprecated, but I didn't realize that it caused a crash so yeah, I guess it should be migrated.
Remove this diff, just looks like import re-ordering
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
Can drop the javadoc here, just increases workload to maintain it since its a copy
Are we sure that all entities should just have their yaw and pitch set at the end? No clue what that does for hanging entities for example.
[PaperMC/Paper] New review comment on pull request #9552: Fix rotation for spawning display entities
Don't move the setPos here. Each entity already has it's own logic for settings its position, its at best redundant, and at worst breaking whatever logic behavior might happen above to set the position.
[PaperMC/Paper] New review comment on pull request #9552: Fix rotation for spawning display entities
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
});
[PaperMC/Paper] New review comment on pull request #9552: Fix rotation for spawning display entities
I mean I thought it was because there's a ton of extra logic in moveTo that isn't required for setting an initial position.
8712539 [ci skip] update editorconfig and gitattributes - Machine-Maker
[PaperMC/Paper] New branch created: file-formatting
Is this correct? or should it just be text eol=lf? I think without the =auto it won't ignore binary files?
6dc8e30 Fix startup and runtime crashes (experimental b... - BlockyTheDev
[PaperMC/Paper] New review comment on pull request #9552: Fix rotation for spawning display entities
I did that because Owen suggested to make a fix that makes all entities respect yaw/pitch, but you're right. In that case, can I revert back to my original commit, which just fixed the rotation for display entities?
[PaperMC/Paper] New review comment on pull request #9552: Fix rotation for spawning display entities
Probably. It's out of scope of this PR, can be a future thing to cleanup.
Closes #5143, continuation of #5242
I also fixed two vanilla bugs related to extinguishing, are they good to stay in this patch or should I put them in their own patch & pull request?
Please do not open pull requests from the master branch, create a new branch instead.
Closes https://github.com/PaperMC/Paper/issues/5143, continuation of https://github.com/PaperMC/Paper/pull/5242
I also fixed two vanilla bugs related to extinguishing, are they good to stay in this patch or should I put them in their own patch & pull request?
496156e Update with latest upstream changes - Machine-Maker
Bug fixes should definitely go in their own patch, not in the implementation of an event.
6520ca1 Fix main thread priority being lowered (#9488) - Warriorrrr
This adds a very cheap distance check when an end crystal is placed.
Attempting to respawn the dragon, which involves looking up the end crystal entities near the portal, every time an end crystal is placed, can be slow on some servers that have players placing end crystals as a style of combat.
The very cheap distance check prevents running the entity lookup every time.
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...
Didn't realize it was so generous in detecting where you placed crystals, always thought it was just those exact blocks.
Can reproduce, this is caused byhttps://github.com/PaperMC/Paper/blob/master/patches/server/0427-Clean-up-duplicated-GameProfile-Properties.patch
This patch should probably be removed.
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...
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 ...
Can you please provide the entire world default configuration.
If the reloot time is disabled while reloot is restricted, the player should not be able to reloot. The previous logic was incorrect and allowed players to reloot explicitly when the reloot time was disabled.
No eyes or thinking rock, but, based on convos elsewhere, lgtm
47b805f Don't let player loot if reloot time is disable... - lynxplay
This seems to be a duplicate of https://github.com/PaperMC/Paper/pull/6680 if I'm not mistaken
73af2d4 Add clicked position to PlayerUseUnknownEntityE... - kennytv
[PaperMC/Paper] branch deleted: useunknownentity
needResetSpawnPos should also be set to true if the world isn't found like MM said. https://github.com/PaperMC/Paper/blob/73af2d4cea597e65dd13dafab6325ea5709c9067/patches/server/0435-Spawn-player-in-correct-world-on-login.patch also defaults the level key to overworld which will also need to be accounted for.
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...
Can confirm with the following simplified setup from the schematic
<img src="https://github.com/PaperMC/Paper/assets/50800980/af6190b1-72e3-4a7d-8c48-4e6368c11e1d" width=50% height=50%>
The armor stand can move a small bit when sprint attacking (no sweeping edge/sword required), but only on the x axis, was not able to reproduce on spigot/vanilla.
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...
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...
My proposal involves extending the get() method to accept a parser interface that would allow users to specify how the default YAML string representation of the data should be translated into the desired object type
Except that information literally no longer exists at this point
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...
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 ...
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 ...
This event would be called so much that it would tank your server's performance. Generally a bad idea IMO
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.
Have the conversion method be in PaperAdventure.
+ return asJson(adventures, false);
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...
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?
Would it be possible to call one event when a block is broken/placed with a list of the affected blocks. Would that be better.
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.
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...
This event is called twice here.
I think the snow block should still be destroyed for flame arrows like the burning player. Because here you cancel the extinguish of the entity and so if the entity still burn the block should melt. You can move your bugfix block one line down
Thanks, addressed the comments and fixed one additional vanilla bug
PR looks good aside from a few small comments.
New events should go into the io.papermc.paper package
static final fields should be upper snake case, HANDLER_LIST
This star import should be undone. Also use fully qualified names to avoid imports & reduce diff
+ * @return A collection of players who are close enough to activate the spawner.
+ * May be triggered asynchronously for world generation-related reasons.
This seems like it could also be done like this, but good either way.
+ return (!this.getChunkSource().spawnFriendlies && (entity instanceof Animal || entity instanceof WaterAnimal)) || (!this.server.areNpcsEnabled() && entity instanceof Npc); // TODO per-world npc
setRot(yaw, pitch) would fit best in my opinion, only a single line and does some sanity checks for NaN.
Is this still needed if those methods do the same?
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...
Not sure. It wasn't what my PR was attempting to achieve but I guess this could be implemented instead of the previous? Thoughts?
if (!activatingPlayers.isEmpty()) {
I feel like when I put everything back something cooked up and it isn't showing all the imports in the patch but it is in my IDE. Could someone check this?
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...
I think such a feature would be best suited for a plugin, since cancelling the EntityTransformEvent for piglins and hoglins is only a few lines.
@Owen1212055 would you just say remove the patch entirely?
Well even beyond that, the better way would be to set all Hoglin and Piglin as immune to zombification via Hoglin#setImmuneToZombification and PiglinAbstract#setImmuneToZombification.
Or you could use a datapack and modify the overworlds generation settings to set it as piglin safe. There are several solutions to this issue already, so I think a setting is redundant.
This is my first time doing this, in the issue comments Owen said it should just be removed so thats what this is
Please do not open pull requests from the master branch, create a new branch instead.
This is my first time doing this, in the issue comments Owen said it should just be removed so thats what this is :)
It's been long enough since this happened, I think I'm find just removing this patch now. Maybe an undocumented setting that is disabled by default, but I think its fine.
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...
Fixed on the latest version. Update.
307d05b Count down radius-aware dependency tree node pa... - MartijnMuijsers
Closes #8178, supersedes #8179
It might be worth mentioning in the javadoc that the method can do file IO in some cases, but other than some trivial things this looks pretty good.
You could possibly use an AT here instead of a new method.
This annotation is redundant, an int is never null.
The extra parentheses around it aren't needed, probably a leftover from the cast.
I have spark installed on my papermc server (via plugins folder) but I still get the spark warning on startup as of 1.20.1. Is there something more I have to do to configure it?
The warning is because timings is still enabled, if you want to get rid of it you'll need to disable it in the config.
Could you provide the world or a schematic of the machine for easier reproduction/testing?
I can reproduce the issue pretty reliably but only for the most western flying machine weirdly enough. The issue where they stop in mid air was also reproducible on vanilla.
This bit of unneeded diff should be undone
It would also possible to remove the deathEvent variable entirely, but comes down to the same thing
+ final var deathEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityDeathEvent(this);
+ if (deathEvent.isCancelled()) {
This doesn't seem to be needed anymore actually, the max rate is only used if the value in the config is less than 0.0, which means 1.0 will work fine now.
In addition, the rate used to be in chunks/tick, so that the minimum was 20 chunks/second, which is quite high for a minimum settable bound. Now, the rate is in chunks/second, so that the minimum is 1 chunk/second, which I also expect to be low enough to cover all environments.
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.
This can be on the same line but the event doesn't seems to be called anywhere in the first place?
No need for this indentation
You absolutely can't cast a List<net.minecraft.server.level.ServerPlayer> into a Collection<org.bukkit.entity.Player> activatingPlayers. And this logic should mimic the isNearPlayer boolean but changing into a getter
You need to use the fully qualified name to get away from these. So instead of using EntitySelector you put net.minecraft.world.entity.EntitySelector for example
I forgot to say that in the review, but you need the notnull/nullable annotations in the API otherwise the test will fail
Is your feature request related to a problem?
Is there a way to always fetch the latest Paper build for a given Minecraft version?
Using the URL provided at https://github.com/PaperMC/Paper/issues/2661 no longer works.
Thanks,
Matej
Describe the solution you'd like.
N/A
Describe alternatives you've considered.
N/A
Other
No response
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...
its intended to not provide docs on how to auto download latest builds since its intended for only people who know what they are doing. You have to figure things out yourself. The API page should provide enough details on how to get the latest build.
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.
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
...
no, because if a corrupt build manages to the release branch it could break and destroy a lot of servers.
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
only issue I have is that it doesn't properly shut down if I click stop/rerun wich is just bruh.
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-taskonly 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
Can confirm this is currently an issue on both bungee and velocity, issue is reproducible by alternating saying something in chat and running a proxy command.
I made my own endpoint. Whom can I contact regarding approval? It's cached with 6 hours expiration time and I store the jar on my own server not to overload yours.
As laid out a) in this issue b) in https://github.com/PaperMC/bibliothek/issues/74, we are not interested in a latest endpoint.
Feel free to maintain an endpoint for yourself to download latest, we are not going to promote one to the public api as laid out before in https://github.com/PaperMC/bibliothek/issues/74.
Cheers for your PR! Unfortunately as Mini mentioned above this doesn't really suit Paper's current project structure.
What would you recommend alternatively? Isn't it required so that "setCancelled" can be checked?
I think it might be nicer to have a Collection instead of a List, you can also annotate this constructor with a
@APIStatus.Internal
Was originally a list but followed the feedback of above. Probably either did it wrong or don't have the write methods in place for a Collection.
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...
The problem is not really the collection but more the type ServerPlayer is internal so you can't cast directly that and if you do the right cast (Collection<org.bukkit.entity.Player> with the generic type) things won't compile
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.
The event doesn't seems to be called anywhere normally you do a #callEvent or Bukkit...callEvent
So something like this?
if(!preSpawnerSearchEvent.callEvent()){ if(event.setCancelled()){ return } }
you dont need the second line iirc.
Due to what cat said and there being no other feedback, closing this as a won't fix,
thank you for the request though!
The stacktrace pastebins seem to have expired, could you re-upload them?
Isn't this possible by setting the map cursor limit option to 0?
Closes #8230, supersedes #8242
By default, the option will have a value of "default" which will fallback to the motd set in the server.properties. Adds a new ComponentOrDefault class which uses the already existing ComponentSerializer to (de)serialize the component.
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 airto prevent other mobs from adding to the mobcap - (I additionally used
/fill ~-128 -64 ~-128 ~128 -64 ~128 black_stained_glassto have a floor to build on) - C...
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.
but then we would have to keep the old-fashioned way system that would make the boilerplate code still exist I don't know if I made myself correct, it is sure a hard task but an actual revisitation of the configuration system of Bukkit would be loved.
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...
would be cool to provide it to the API layer and deprecate the old configuration system as now it doesn't provide that much of a use anymore for complex jobs.
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...
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)
##...
Hey DzXAnt22, I'm unable to reproduce this. I see you've been discussing this in Discord too, so I'll close this ticket as it doesn't seem to be a Paper issue and we can continue discussing it on Discord.
hey look it's me :trollface:
I have a new exploit anyways
am I gonna gonna report it? no??
also just saying, the new exploit doesn't use any redstone.
fun fact you can put all of that into one comment instead of sending it in 3 😱
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...
it's the server not a plugin
this crash also effects folia as I tested it on there
@yfdmc If you don't have any useful context to provide on this issue, please stop commenting here. If you wish to provide some helpful info on this exploit you're mentioning, please do so in the Exploit Report channel on Discord.
Hey parkerha,
Can you please test this without any plugins running to see if the issue persists? Additionally, can you please provide a schematic or zipped world file for the gold farm?
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!!
Can we have a test plugin case which verifies that plugin-registered commands override vanilla/bukkit commands?
Added such a command and fixed the issue.
[Paper] Branch feature/lifecycle-event-system was force-pushed to `d0ac3f2`
bcf202f add priorities - Machine-Maker
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...
[Paper] Branch feature/lifecycle-event-system was force-pushed to `28b3616`
In testing I've found that if I remove server patch:
0409-Ensure-safe-gateway-teleport.patch
Results in entities in minecarts getting teleported through end gateways just fine
How to remove server patch?
how to run paper-paperclip-1.20.1-R0.1-SNAPSHOT-reobf.jar?
Error: Could not find or load main class occur when execute "java paper-paperclip-1.20.1-R0.1-SNAPSHOT-reobf.jar--nogui"
Closing this as a duplicate of #8782. Thank you for your contributions.
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...
please open a new issue with your loottable/datapack, server version, plugins, etc
This is not resolved, please don't close a conversation that is not yet done, this is already the second time, i will not unresolve stuff each day. I'm fine if you need some help however
Remove indentation change here
Each modified block needs its own Paper start and end comments. Also: space after if
The comments could be updated with the new names/classes in this method
While kind of cluttery, getting individual values of an entity's location is done often enough that I think it's worth exposing directly
The precomputed size should be: 1 + count
or you can increase the count var directly
This list could be unmodifiable to be sure to have at least a consistent behavior in all cases
This will not return the bukkit yaw and will not match #getLocation, you can see the bukkit implementation of #getLocation to behave the same for living entities
d0 would benefit of an obfuscation helper, otherwise good
Remove the indentation here
Maybe this should also remove the dig cooldown?
Feels a bit too dank and like abusing some internal data handling to add this as API
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
Should only be using FQN now.
you missed one import (java.util.List)
This is not fixed the way you convert a ServerPlayer to a Bukkit player is using #getBukkitEntity on the internal object. No cast should be needed
Don't get what you mean. It's intended to be indented, cause it's in the condition.
Or do you prefer no indention at all to reduce the diff to 4 lines instead of 5?
We generally prefer not to indent existing code because it creates extra diff to confict needlessly, in which not having the indent will often allow git to 3way it automatically for the most part, or at the very least often present a more useful from glancing conflict
fd4f0c7 API for an entity's scoreboard name (#9462) - Machine-Maker
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.
Nevermind I was on peaceful........... thanks for the help!!
Closing this until I come back to it. Slowly am working on the structure of it separately here.
ij_java_generate_final_locals = true ij_java_generate_final_parameters = true
Is this something we are pushing? This is a bit of a change as I am not sure everyone does this, unless we want to push this within our codebase.
This PR fixes compile errors related to the javac compiler in the experimental branch until upstream fixes it (if they do).
All the code changes were successfully tested.
Before/After this PR gets merged an upstream update would be great because md_5 updated the experimental branch two days ago.
+ 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();
+ ...
I believe upstream fixed it with this commit (and the bukkit counterpart)
I believe upstream fixed it with this commit (and the bukkit counterpart)
I tried it out and saw that is fixed by this upstream commit like written by you. Sorry for opening the pull request... I never worked with wildcards and generics and because of that I didn't saw the connection between the upstre...
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 ...
Exposes the direction / clicked BlockFace during the BlockDamageEvent.
This may be useful for custom items / mining, for example 3x3 mining (determining the mining direction).
Nah it's fine for a single thing
Can't you copy the config you want into the directory that the world will use and then create it? I don't think it deletes anything already in the directory.
d129162 Properly handle BlockBreakEvent#isDropItems (#8... - Machine-Maker
Can't you copy the config you want into the directory that the world will use and then create it? I don't think it deletes anything already in the directory.
i really dont test that.. but if directory exists this not handle a issue or any?
Are we sure that all entities should just have their yaw and pitch set at the end? No clue what that does for hanging entities for example.
67a1a8c Fix Inventory#getLocation not working for the c... - Sytm
5b34a09 Add option to disable chorus plant and mushroom... - EpicPlayerA10
ed8401c Fix rotation for spawning display entities (#9552) - Gameoholic
bd67b83 Determine lava and water fluid explosion resist... - galacticwarrior9
d928dda Don't tab-complete namespaced commands if `send... - EpicPlayerA10
f43a19c Fix CME in CraftPersistentDataTypeRegistry (#6701) - Gerrygames
"gtfo if you arent going to leak how 2 do it."
990765b Fire entity death event for ender dragon (#9495) - Prorickey
can we use your code generation stuff to generate the keys?
thank you so much guys <3
@jpenilla, what's wrong with this PR? o.o
1259b93 Fixed CraftItemStack/CraftItemMeta enchantment ... - WillFP
88891c3 Add Entity Coordinate and Rotation API (#9461) - TonytheMacaroni
5bf82aa Add cancellability to PlayerTrackEntityEvent (#... - yannicklamprecht
1b96c64 Improve cancelling PreCreatureSpawnEvent with p... - Machine-Maker
Bundles compute the amount to remove from an item based on the formula (64 - currentWeight) / itemWeight. An overfilled bundle however, with a currentWeight of > 64 ends up with a negative removal amount for the item.
This can cause duplication issues on craftbukkit inventory implementations as they do currently not gracefully handle negative removal amounts in their remove methods.
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]:...
This isn't really useful, we don't know what the expected behaviour you think should happen from the number 1. You don't say what is actually broken, only some random server versions.
The patch was removed in the 1.19 update. The fact that the docs still show it is a bug.
The patch was removed in the 1.19 update. The fact that the docs still show it is a bug.
but the option is still in the config
Yes, an oversight during the removal. I'll open respective PRs to remove the option from the configuration and docs. Sorry for the confusion.
Removes the unused lag-compensate-block-breaking option from the paper configuration file as the patch using it has been dropped in 1.19.
281855c Remove unused lag-compensate-block-breaking opt... - lynxplay
Both paper and the docs have been updated.
Given that leaf seems to have implemented it on folia again, we might consider readding this back in the future, but for now the patch and the option to enable it are removed :+1:
useful for checking metadata / pdc of block to be placed
todo: test
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...
cant you just call the method on player?
as general usage, or in this prs implementation?
because currently the hand the block is place from isn't exposed.
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.
then it makes more sense to expose the hand, as thats the only thing you cant right now, no?
Along with the stuff currently in the TODO list I would like to request two more things to be considered.
- 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.suggestscalls. - Adding a
command-prefixentry inpaper-plugin.yml. I personally dislike having the prefix for commands capitalised simply because the plugin's name is capitalised. I am aware...
It might also be nice to set the motd inside the /paper reload command, currently it's only after every setMotd call. Can't update this PR until the end of the week unfortunately.
There is a method in CraftEquipmentSlot to convert the hand.
Add @ApiStatus.Internal to the constructor. It's possible we want this to be a new constructor. Usually for most events I don't care, but its possible this event is created/fired by plugins more than others.
Rebased and added an obfuscation helper variable. Is it added the right way?
Can just mark this as deprecated instead. Actually, also mark this as DoNotUse to make sure we catch any that upstream might add.
So replace Internal with Deprecated and DoNotUse. Just for this method tho, the other one is good.
what about the existing deprecated one, or leave that as-is. should i also add a deprecation reason in the javadoc, or leave it
Just leave that one as is. No need to mention anything in the javadocs either
35ef053 [ci skip] update editorconfig and gitattributes... - Machine-Maker
[PaperMC/Paper] branch deleted: file-formatting
Removed the setting of the status field
b29ecd4 Expose clicked BlockFace during BlockDamageEven... - aerulion
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
EntityPortalReadyEventandEntityPortalEvent? 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:/...
You're replacing the tags in the original meta with this as well
27d39ca Properly clone custom nbt tags inside ItemMeta ... - SoSeDiK
9395aa6 Improve performance of mass crafts (#9603) - Machine-Maker
7386a13 Fix endgateway teleportation offset (#9517) - Lulu13022002
@kennytv the event still doesnt fire when the /kill command is run
Maybe this should be updated, but ideally the title would be nullable if you don't want to break the api you could fallback to the hardcoded value for inventory that doesn't have a translation key
Missing space between the first and second argument. I think another test here that would compare and check that the hardcoded values are equals to their en_us translation might be convenient (this is especially useful if the defaultTitle is not updated see above)
I think this should be null, the survival crafting slots is not even mentioned in the javadoc, and the whole inventory doesn't have a name. Additionally those 4 crafting slots gets the right CRAFTING type and not PLAYER.
This would be more usefull in the loop before the continue i think
It definitely is. Make sure you're up to date and that your listener is registered.
You can use the Tag.TAG_ANY_NUMERIC constant
This newline is not needed
This newline is not needed
This should be in the config patch (0005-Paper-config-files.patch)
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...
Unsupported version of paper, and you hit a jvm/environment bug, not a paper bug
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...
Probably nice to have an obfhelper local var for flag1
I never understood why my pull request was not merged and hated by other members for just persisting the pose. instead of needing the plugin using the api to handle every entity load event to achieve the same result.
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
I use that, cause that's what is used on the client for the player's inventory screen.
idk if it would even be breaking the API. it returns a component, no guarantees of what type of component.
Not a good way of dynamically getting the en_us values, so it'd just be more hardcoding I think.
I'm not sold on the usefulness or virtue of having the global defaults. They won't apply retroactively to any already-generated spawners because the NBT is already set to 4. I think adding a default for the height is better, but they are already controllable via a plugin.
I think the best solution is to add a configuration that skips the collision box size check if the entity moving through the portal is a Ghast.
因此,最好的选择真的是添加一个选项,让 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
When the number of players reaches dozens of people, the high simulation distance cannot be afforded
add an option to let the y check essentially,there is no need to modify the afk spots of the biological farm
yes, we know, it's on the todo list for consideration.
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...
I can't replicate this. I placed a tnt at my feet in survival mode, lit it, and died from the explosion.
The check for updating the inventory should be run in all cases that the event is fired in BlockItem, not just for solid bucket item. This should cover lilypads and frogspawn, the 2 place on water blocks.
I know there is a config option for mob light levels so I don't see why this couldn't be added if it hasn't been done already.
Are you in peaceful mode? TNT doesn't cause damage to players in peaceful mode.
