Not sure that's what you meant but changed
#docs
1 messages ยท Page 1 of 1 (latest)
bukkit plugins, not spigot plugins
See information on declaring dependencies for more information on how to declare the load order of your plugin.
Added a note to the forward example
Resolved Owens Comments
Looks like its pretty much there, just a few suggestions really.
- Your plugin's instance,
- The code to run, either with a `Runnable` or `Consumer<BukkitTask>`,
- The delay in ticks before the task should run for the first time,
- If you're scheduling a repeating task - the period in ticks between each execution of the task.
Why is the page called task scheduler if you immediately refer to it with the BukkitScheduler name. Maybe just name the page "The Bukkit Scheduler" or something along those lines?
The `BukkitScheduler` can be used to schedule your code to be run later or repeatedly.
Do we want to mention somewhere that it is bungeecord:main on the proxy side but BungeeCord on the server side ?
I feel like, we'd wanna move this like, behind the following example.
Reading this had me think that the following example was for banning players.
I'd prefer something like Scheduling tasks over including Bukkit in the name
Think of it as a long sentence, hence the commas and the period at the end,
will add for the first time
Closes #188 by adding some missing nodes
The player count in the last column doesn't seems well formatted
This got merged. If you want to suggest something Iโll have to make a new PR - let me know on discord.
Missing required version field in the PaperMC download OpenAPI specification. (https://api.papermc.io/openapi)
https://swagger.io/specification/#info-object
The specifications requires for the info object to have both the title, and the version.
The PaperMC OpenAPI specification is missing the version field.
Is:
"info": {
"title": "PaperMC API"
},
Should be:
"info": {
"title": "PaperMC API"
"version": "FOO"
},
(I'm not necessarily...
This also includes the 3.0.x OAS (https://swagger.io/specification/v3/#info-object)
This docs repo holds our docosaurus docs. I believe this would be more appropriate on bibliothek
This docs repo holds our docosaurus docs. I believe this would be more appropriate on bibliothek
Man am I blind, haven't realised I can click on more repo's, closing this issue and opening a new one there.
Initial Work for database docs. I made these on a plane so some sections may be lacking. Let me know of any additions needed on the PR or discord :)
Work on a guide for plugin configurations. I made these on a plane so some sections may be lacking. Let me know of any additions needed on the PR or discord :)
this is meh, instead of linking products, we should talk about file based dbs (like sqlite, h2, whatever) vs standalone dbs (postgres, mysql, etc).
that article in particular is worthless seo spam
is this still the case on modern systems? I thought it does stuff automatically nowadays
w3schools is a really meh resource (and that link isnt even the real one?)
I would suggest this as a quick primer https://www.baeldung.com/java-jdbc and https://docs.oracle.com/javase/tutorial/jdbc/basics/index.html for a fully featured reference
we should have a sentence or two about what a connection pool is and why its relevant for standalone dbs like postgres and mysql
furthermore we should briefly explain sql vs nosql (excluding nosql from our docs is fine by me :D, but should at least mention that there are DBs that dont use sql.
I would also love a quick section about sql injection and why its important to use prepared statements
oh, and while at it, we need a big red box about never accessing DB/IO/etc on the main thread
generally, I think our docs should be more like a high level explainer on concepts and lead the user to do a bit research themselves instead of feeling like a full blown tutorial (we arent a good authority on such general java/programming knowledge), but idk what others think
looking nice, only thing I can think of is handling a custom config file, idk if we want to encourage that tho since people mostly use that for storing data and data should be stored in databases instead.
oh, and maybe saving configs.
Good points, should now be addressed.
Should maybe also mention that for gradle you need to use shadow, or the library loader?
Yes it is needed, Spigot ships an archaic version of JDBC (3.42.0.0) which does not support the automatic init - (V4+)
Should maybe also mention that for gradle you need to use shadow, or the library loader?
Maybe? Seems out of the scope for this teaching people how to shade things into their plugins. I'll take a look at what I did write
With response to Mini's comments - A more general overview of what you should be researching could be useful. I'll probably focus more on this angle in future
@MiniDigger I have addressed your comments I think. I kept the basic guides within dropdowns, and added a more general overview. Would be happy for another review when you get time ๐
Superseded by 16f8edeb40177d7aa07b755a819819731f92c5fb.
Thank you for the work nonetheless <3
a083256 Document Missing Configuration Nodes (#198) - olijeffers0n
PR is somewhat finalised excluding search. Is this something that we are really interested in? Realistically if you know the config node you can just control-f it
Should be able to use the @site prefix instead of the massive chain of ...
I think some visual distinction should be made between yaml setting text that can be expanded and not. Like there is no visual difference between a yaml section key and a value key.
When this is shown, it changes the height of various things. I think it should be floating so as not not move the description block or other settings down.
If I click on the circle, the description opens up (as the setting is hightlighted blue) but if I click again when its expanded, it is not collapsed. This doesn't happen if I click directly on the setting text.
Not sure we need the literal label Description. I feel its apparently enough with the separate outlined box and the collapsible nature of the box.
Addressed All of Machines Comments.
The classloader isolation currently implemented does not prevent non-paper plugins from accessing paper plugins' classloaders. As a result, relocation remains a good practice to prevent conflicts with non-paper plugins.
This PR is far more limited in scope than #183
The dependency declaration isn't useful because calling classes in org.sqlite packages is unnecessary. No dependency is needed; the whole interface works seamlessly with JDBC.
Good point actually, this is only needed if you intend to relocate a different version of JDBC
to your ``paper-plugin.yml``. Note, other Paper plugins will still be unable to access your classloader.
This deserialize two times the chunk X?
Generally you put bracket when using generic with known type (new HashMap<>())
Reseeing that why the name is chunk-y for a chunk Z?
Adds scheduler docs. Supercedes #143
behaviour
do we use english or british on docs?
When accessing indented values, you separate the levels with `.`. For example, the key for the "David" string would be `root.another-key`
looks nicer I think
Adds a contributing file to outline code quality and also a brief guide on how to add a new page.
Perhaps here is a good place to mention vercel deployments of your PR.
We use [Docusaurus](https://docusaurus.io/) to build and deploy the documentation website. The documentation site is hosted on Vercel, which supports automatic
Saying The documentation after saying where to find the Docusaurus documentation makes it sound like Docusaurus' documentation is written in markdown, when I think you are talking about our documentation. Maybe just make the first occurrence of the word Docusaurus a hyperlink to the docs.
Using Docusaurus means that there are guides for how to write the documentation. You can find the Docusaurus documentation at
Gotta be a website somewhere that covers the main differences for anyone who doesn't know all the quirks. Could be good to link that here
idk if the site is any good, but they list the Our/or, ize/ise, yse/yze ae-oe/e, ence/ense, ogue/og spellings quite nice: https://www.oxfordinternationalenglish.com/differences-in-british-and-american-spelling/
itโs got the word oxford in it so shrug
I would say, instead of "our docs", "The bulk of Paper's documentation is written with Markdown"
This Using Docusaurus means that there are guides... bit feels out of place. Perhaps combine that and the next sentence to something like
Docusarus has extensive documentation detailing what is possible with it. and then link over extensive documentation
I think there needs to be a slightly bigger difference in color between the section names and key names. It feels like they are little too close still. However if the vertical lines are added via the border like I suggested, that might make it enough.
This should have a way to get a link to it as well, not just the keys with values
I don't know how it would look, but putting a left border on this div would create those vertical lines between sections which can be helpful in trying to figure out what section something is in. Then you could have the border "light up" when the div is being hovered over as further indication of what section you are in.
I think a button to "copy" the setting would also be very useful as it is quicker to ctrl+f + ctrl+c to search for a key in your file
Not Quite sure what you mean here... Do you mean like copy autoconfig-send-distance or whatever?
This will throw a UnsupportedTemporalTypeException. Generally this method only support seconds and nanos "conversion". But you can uses:
from minutes to ticks: Tick.tick().fromDuration(Duration.ofMinutes(5))
from ticks to minutes: Tick.of(ticks).toMinutes()
This page contains both 4 spaces and tab for spacing for consistency only one spacing should be used. The whole doc uses 4 spaces except the custom inventory holder page.
This looks weird. is it supposed to be a html comment hidden
The notes looks weird now that it's not anymore a list
Same apply for other lists because all is inlined
Ah, yeah looks to be an issue with my conversion script. Addressed
Addressed the comments and fixed the tabs in this file
The description of this option has been dropped in the process
There's two space here. In the old config it was a newline. Same happens in the replacement-blocks option
This whole section doesn't mention the engine mode 3
This list is not correctly formatted
Addressed these comments and removed the trailing space after strings as well
This whole part is hidden on the website for some reason. Maybe because the section has a description?
The default value is missing. The values was outdated even on the old doc, it's now: ["database", "proxies.velocity.secret"]. The other entries has been either removed or hardcoded.
The default value is missing
The default value is missing
This section doesn't exists anymore: https://github.com/PaperMC/Paper/blob/master/patches/server/0005-Paper-config-files.patch#L1474 since the new ansi encoder
Yeah, it seems like this was dropped in favour of chunk-loading-basic and chunk-loading-advanced. I have addressed all of your comments now. Thanks for going through this all with a fine toothpick.
Deployment failed with the following error:
The provided GitHub repository does not contain the requested branch or commit reference. Please ensure the repository is not empty.
CI is bugged. This PR is ready for final review and does not actually fail deployment locally
This section miss the strict-advancement-dimension-check option (default to false). You can look here: https://github.com/PaperMC/Paper/blob/master/patches/server/0834-Add-option-for-strict-advancement-dimension-checks.patch
by default bukkit consider some world that are similar to the main world as the main world for custom world unlike vanilla that does strict equality here.
This section also miss the chat-threads section:

This section miss the flush-regions-on-save option (default to false)
The default is now: default but maybe the real value could be written somewhere in the description? (could apply for others)
The default is now: default
The Plugin Messaging doc is missing the MessageRaw subchannel.
https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/#messageraw
Adds MessageRaw with component example
Perhaps using a JSON component serializer would be way cleaner than the JSON itself?
Depends on #191. Slightly changes the behaviour of the YAML formatter to make it work with the server.properties format.
yeah, really dont wanna encourage hard coding json strings in any way
Ready For Review now that we have merged the base formatting PR for this
Yeah we discussed this last night. Updated it to use adventure
Was lurking on discord, thought I'd comment.
This might cause people to think any Survival mode players can fly.
I think the max is 1000 not 100.
Thank you ๐ - All addressed
Because if one server doesn't have the port in order, you wouldn't be able to connect to it, and because I haven't seen it mentioned anywhere in the documentation I thought it would help people troubleshoot faster over a simple issue that is port ordering.
But if you prefer to not mention it or mentioning it in another way, its totally fine by me.
The port definition doesn't matter outside of a range of reserved or otherwise maybe already used ports. Your first server could have the port 5543, the next 25599, and another 25566
Obviously Still a draft PR, but TBH looks good apart from these comments
**Paperweight** is the name of Paper's custom build tooling. The **Userdev** Gradle plugin
provides access to non-API code (known as internals or NMS) during development.
The Paper server jars we provide on the downloads page and through the API are **paperclip** jars.
These use Spigot's mappings, which are essentially some type names, but fully obfuscated fields and methods.
This guide is written using the Kotlin DSL for Gradle and assumes you have some basic knowledge of Gradle.
Generally with these admonitions we have blank lines between the content and the triple colons. Applies to the others as well
This grabs the versions of projects from api.papermc.io. There is still some logic required todo with when you are opening an old doc like 1.19 or 1.18. This requests every 5 minutes to keep them up-to-date when the page is still open.
isnt it in blocks, not chunks?
could someone get confused that
since enable-status enables the query listener, it overrides enable-query?
kicked implies they were able to join successfully, rather than prevented like the name suggests
I suppose itโs possible. Iโll take a look at the rest of your comments later. Thanks for the review
Just need to handle when the user changes between different versions of the docs
Addressed, thanks ๐
Maybe also mention sending to players that aren't on the same backend server as an extra use case.
The text above the snippet make it sound like this is only going to one player, when this is being broadcasted to all players on the proxy. This should be clarified to mention that this should be the name of the target player or ALL.
Now that I think of it, "This is useful for sending clickable messages to players," sounds weird considering we (and Spigot) have native support for chat components. I feel like this might be a leftover in the bungee docs from a time where this native integration didn't exist yet. Maybe we're better off removing this entire part? I don't really see the purpose for this channel anymore apart from the aforementioned option of using it to send messages to players on a different server.
Good point. I think this is more just bad wording... but yeah the fact that it is a clickable component is not really significant anymore.
Addressed Merge conflicts
This is the initial page for transferring the Github Issue to an actual page. Let me know any comments you have as You may want more of an explanation to why these were changed. Any maintainers may also have more insight.
Is allowed the right word?
Since server owners can do what they want, including installing plugins to bring the dupe back
21125d7 Add missing plugin messaging channel (#208) - olijeffers0n
The main reason iirc why these options are in the unsupported setting is not really the lag or enabling them, it is more that we do not promise these to keep working down the line.
If upstream fixes this accidentally, or even mojang, we are not going out of our way to re-implement these settings.
If enabling them absolutely crashes your server, it is probably still a good idea to let us know lol.
Ok, this is ready for review now. The basic logic behind what version to display to the user is:
-
If the URL contains the version string, then we load the maximum version for that major. IE the dev guide will display
1.19.4if we are using the 1.19 versioned docs. -
On the other hand, if we are using the latest docs then we can just return the highest Paper version.
SoftwareVersionFetcher
In order to use this, there are some caveats. When it is placed inline within markdo...
I think I would mention somewhere what our criteria for determine what is and isn't intended vanilla behavior. That is an open and confirmed issue on the tracker, usually with a mojang priority assigned to it.
Paper fixes many vanilla bugs that were not intended by Mojang. These bugs are patched to fix behavior or prevent abuse and
Paper Patches TNT, Carpet, Rail and Gravity Block (Sand, Gravel, etc.) Duplication bugs. These bugs are not intended and
These settings are also not guaranteed to be supported into the future and may have their behavior changed or removed at any time.
I think it would probably be very handy to have a component to make linking to specific javadocs easier. Just to avoid the boilerplate of <a href=.... It could take a parameter for the path to whatever, and the inner content would be the text to show instead like the a tag.
private currentURLVersion: string | null = null;
I think, even if we aren't using them now, we should add all the possible props to CodeBlock like title, and showLineNumbers
newline at end for this and all new files.
Don't think I'm gonna use Paper plugin here cause that's a separate thing now. I think just adding your works
I think I would rather this said either // Other Dependencies or just // ...
[PaperMC/docs] branch deleted: feature/userdev
022fac4 Remove the circular dependency image and add a ... - olijeffers0n
not fond of the notion of making the TOC stupidly large
Same here, thanks for your contribution nonetheless.
There is some buggy behaviour when switching between versions. Other than that there are some syntax changes I will explain when ready for final review
ab0a346 Add docs for player reloot time - Machine-Maker
[PaperMC/docs] New branch created: paper/player-reloot-time
Whatโs the unit?
The duration, supports s,m,h,d.
Should it maybe say that? From a quick look at paper it seems like only one unit is permitted rather than 2h3m30s which is how I would use this.
"dev/api/component-api/i18n",
Looks good, the only thing I would say is that it probably needs an example of using a translatable component
:::info[Javadocs]
Adventure's javadocs for all-things translations can be found [here](https://jd.advntr.dev/api/latest/net/kyori/adventure/translation/package-summary.html).
:::
Ready for final review
[PaperMC/docs] branch deleted: temporary-config-page
[PaperMC/docs] branch deleted: feature/folia
On Line 9, I think that should be an admonition and be worded more generally like
"Developer-specific documentation can be found here". Avoid using you essentially.
It should be noted you still have the ability to include both `paper-plugin.yml` and `plugin.yml` in the same jar.
This will not act as a drop-in replacement for `plugin.yml`, as some things, as outlined in this guide, need to be declared differently.
Just blocking cause I think the structure of the options is going to change based on https://github.com/PaperMC/Paper/pull/9599#discussion_r1292826471
if you are on a sub page of the docs, and click on the version selector in the top right, it takes you back to the root page on the current version.
this feels like it might be confusing, especially as it tries to keep you on the same page when switching versions
This isnโt behaviour I have changed, but I am happy to discuss it over on discord as Iโm not quite sure what you mean ๐
4e6cd4a Add docs for player reloot time (#215) - Machine-Maker
[PaperMC/docs] branch deleted: paper/player-reloot-time
Asynchronous tasks are tasks that are executed on separate threads, therefore will not directly affect
Dangerous stuff, keeping an entity reference cross tick is not really something we want.
Would probably be better to use a UUID here.
I have added all the behaviour of a native code block and changed the way that the versions work.
Embedded Versions:
Before, we had:
import SoftwareVersionFetcher from "@site/src/minecraft-versioning/SoftwareVersionFetcher";
The valid versions are 1.13 - { SoftwareVersionFetcher.getMajorPaperVersion() }.
However this only supports synchronous getMajorPaperVersion calls, so I have had to move this to a component:
The valid versions are 1.13 - <SoftwareVe...
Update player.sendPluginMessage from player.sendPluginMessage(plugin, "bungeecord:main", out.toByteArray()) to player.sendPluginMessage(MinecraftChannelIdentifier.from("bungeecord:main"), out.toByteArray())
# Let's say that RegistryPlugin registers some data that your plugin needs to use
basically mentioning that the components are minimessage formatted
The wording on some of these sounds off - โminimessage formatted messageโ is weird. Maybe more like โThe message sent to clients for โฆ - Formatted with minimessageโ
9d11766 Add message format (mentioning minimessage) (#219) - the456gamer
f5226ee Capitalise MiniMessage in configuration pages - olijeffers0n
A question that gets asked often is "Should I use Velocity, Waterfall or BungeeCord". While the existing page already answer that, its a lot to read and contains plenty of details that most server owners just looking for a simple answer aren't interested in.
This PR adds a small markdown table with a comparison matrix to the top of that doc page. It makes it easy to see at a glance what Velocity does, and what it doesn't do - mainly, supporting plugins made for BungeeCord, another question...
It is somewhat possible to run Bungee plugins on Velocity using a plugin, not sure if that's reliable enough to mention that on the docs though
Could list some of the stuff, e.g. Adventure support
Should probably mention modern Forge being problematic, on all proxies though
Two rows for velocity and bungee plugins seem redundant but i canโt think of a better way to do this. Also, surely there must be another pro to Bungee over velocity? Seems rather one sided thatโs all ๐
on one hand maybe i should remove it so it shouldn't show at all, on the other, its then no longer a complete reference
notes for myself later
mention file extensions?
that table should somehow also show a difference between bungee and waterfall (not that I would know something to add there, lol)
39caef3 Remove lag compensate block breaking configuration - lynxplay
[PaperMC/docs] New branch created: bugfix/remove-lag-compensate-block-breaking-from-config
d6783f9 Remove lag compensate block breaking configurat... - lynxplay
[PaperMC/docs] branch deleted: bugfix/remove-lag-compensate-block-breaking-from-config
47dced0 Sample code for GH actions Hangar publishing - kennytv
[PaperMC/docs] New branch created: hangar-publishing
869d473 Sample code for GH actions Hangar publishing (#... - kennytv
[PaperMC/docs] branch deleted: hangar-publishing
https://docs.papermc.io/velocity/dev/creating-your-first-plugin, quotes that 3.1.1 is the newest version, but 3.2.0 is the newest version. Please replace 3.1.1 with 3.2.0-SNAPSHOT.
I hope this is the right place to address this issue.
Thx
3.2.0 is not released yet
Requires a rebase. Also, i seem to have ignored velocity. I assume we want that as well?
All JavaDoc URLs at papermc.io are pointing to https://jd.papermc.io/velocity/3.0.0/ (which is Version 3.2.0)
and the "default" Download at https://papermc.io/downloads/velocity is Version 3.2.0.
So even if 3.2.0 isn't a "release version", I would change it.
00c7782 Add paper contribution docs for events - Machine-Maker
[PaperMC/docs] New branch created: contributing/events
this is the bit that shows up in the embed. Maybe make a slightly more user friendly sentence for this, move this down and the note could even go in an amondition
Maybe requires more than one word. this looks off
This is the EventExecutor interface being implemented in the lambda right? I think it also has 2 parameters, the listener and the event.
This is the EventExecutor interface being implemented in the lambda right? I think it also has 2 parameters, the listener and the event.
The code from the docs does not compile.
which will follow it across regions. As an example, let's say I want to set a block to a beehive:
In order to support Paper and Folia, you must use the correct scheduler. Folia has different types of schedulers
To work with SQLite, you will need a driver to connect / initialize the database.
On the other hand, an SQL database is a type of database management system that follows the relational database model.
If it meets these two criteria, then we will accept changes to fix the bug, as it can take a long time for Mojang to fix
instability on the server. Many of our fixes are configurable, as we understand that some servers may want to keep the
them (Sometimes years). If an issue gets declined by Mojang, we normally do not "fix" it, as it is intended behaviour.
Paper fixes gameplay and mechanic inconsistencies. The most prevalent fixes are to TNT duplication and bedrock breaking.
If you haven't any differences between BungeeCord and Waterfall, or you aren't willing to document them, you may want to remove one of the columns entirely.
There are differences. Waterfall guarantees Slf4j and exposes it in the API. On BungeeCord this library happens to be provided, but only due to the recent circumstance of library loading. Moreover, Waterfall has miscellaneous performance improvements to the implementation. I believe there might be a few new events. If we can get https:...
I'm not sure we want to use the word Many here to describe the number of configurable fixes. I would say most aren't configurable. I think Some is better.
It's possible these are proper nouns as the name of blocks in game so capitalization would be appropriate.
Your .editorconfig has made it in somehow, also need to look at the redirect to check it. Otherwise the content looks generally good
oh editorconfig should be in, but I guess it can be a different PR.
Iโve looked over the sidebar config and all looks good. Content of the page is good for now and can be added to in the future as needed. Up to you, but iโm happy for this editorconfig to stay here
[PaperMC/docs] New branch created: feature/sniffer-egg-configuration
5b9b62f Add sniffer egg configuration - lynxplay
Boosted hatching occurs when planted on specific blocks.'
92b871b Update docs/paper/admin/reference/configuration... - lynxplay
These gonna be durations? If so they need the same comment as the other ones.
Blocked by the Paper PR, but approved
[PaperMC/docs] branch deleted: feature/sniffer-egg-configuration
5998426 Add paper contribution docs for events (#226) - Machine-Maker
[PaperMC/docs] branch deleted: contributing/events
Addressed Comments, some I did not use though as it seemed a bit trigger-happy with the commas and didn't seem correct (with a check online to back me up)
Addressed comments and merged main
ive decided to keep it, with more of a description with what it does, still saying that you should not touch it
add the filepath to the paper-config files,
merges file info into the "info" block of server.properties to match paper-global and paper-world
side note: i dont know why idea keeps removing the space, i cannot commit without it disappearing
It should be finalised now. Ready for review
0ec0b9e Add Folia Compatibility info to Paper (#185) - olijeffers0n
as a probability of 1/<thunder-chance> per chunk, every tick.'
description: 'The range, in blocks, that exp orbs will combine at.'
description: 'The range, in blocks, that items will combine within.'
Whoops, Yep addressed that
this one is shorter than spigot.yml
Capped by paper to be 20 ticks (1 second).'
description: 'How long of a delay to enforce between connections from an IP address.
The message is formatted with legacy "ยง" style formatting.'
description: 'Number of ticks between each full auto-save. Set to -1 to disable auto-save.'
description: 'File to load server permissions from.'
Measured in milliseconds since last attempt.'
Needed for markdown formatting
description: 'The kick message for the player when the server shuts down.
expected so wrapping is skipped imo. can still remove if you want
If -1, uses default.
Personally I don't like how this part sounds
This can be overridden by the [paper-world config](/paper/reference/world-configuration).'
Maybe this should explain how it works, or link to a page explaining it. And that it's usually not used anymore (to my knowledge?)
This can be overridden by the [paper-world config](/paper/reference/world-configuration).'
description: 'The number of ticks before an arrow despawns.'
description: 'Whether to allow zombified piglins to spawn inside nether portals.
right now some mobs are "Zombie" whilst others are "zombie"
description: 'Overrides the simulation distance. Set to -1 or "default" to use the value in server.properties'
This PR adds a button that lets you expand or collapse all the config descriptions at once. I've also taken the liberty of fixing some of the linter warnings I was getting, as well as some weird issues that I ran into while attempting to implement this feature.
I've also attached a showDescriptions parameter to the Config component that defaults to false. Setting it to true will expand all the descriptions initially. It might be useful to show all descriptions for smaller configs by ...
codeblock as a classname is a bit generic here, considering its only position relative, maybe configblock?
The sole purpose of the "position relative" class is to make it possible for a "position absolute" class to position correctly in whatever element it resides in. I originally renamed it to config-button-parent before changing my mind and naming it relative-container since it could be useful in other places in the future.
Just realized I could also call it config-container :man_shrugging:
fixed.. i got too hyperfocused on the naming lol
also disable ligatures in config objects. only issue i can think of is if there is a code example in a config description, but that probably should have its own page anyway
Worded weirdly; More like โWhich commands should overrideโฆโ also is it overriding vanilla or overriding bukkit? If it is the Vanilla command being used i think override is a weird word in the description (i know itโs in the key) just because itโs more of a defaulting action
Iโm not a fan of this slug / file name. This should indicate more that it is the outdated bukkit commands config rather than anything you need for plugins
I don't think this (List, String) should be uppercased like class names, people reading this won't care that it's a Java class
b097e9b Add button that expands/collapses all config de... - granny
while at it, maybe add a title attribute with the name of the config option to all links for better accessibility and seo
since the links with the anchors come after the actual text, browsers and crawlers dont know what the link refers to.
This PR replaces the anchor element used for the config nodes with the button element. clean-btn and button--link are applied to render the button the same as an anchor element, and config-node is used for any leftover stylings required to keep visual parity.
https://github.com/PaperMC/docs/assets/43185817/62efe4ca-4f5b-4e59-a836-8655f46ad953
Near the end of the video I notice a weird inconsistency with the config descriptions for the hidden-blocks and replacement-blocks showi...
Does appear to maintain functionality whilst improving accessibility. Personally I have no experience with accessibility but this seems like a step in the right direction
Missing a uppercase letter to start the sentence but this could be reworded
This would be convenient if all other settings reference was clickable to their own page. Applies for others
description: 'How often to shuffle the list of player connections, in ticks, with -1 to disable.
You can link directly to the right node: /paper/reference/world-configuration#entities_spawning_alt_item_despawn_rate
Can link to that said value
I think a lot of - can be removed there to improve readability. Same below
I think only the paper.alwaysPrintWarningState part should be the link
This need a reference to /paper/dev/plugin-yml#api-version or at least explain that this doesn't include minor version and start from 1.13.
The link should be on the correct node. Applies for others
Opening this as a PR to allow discussion, review and so i donโt forget it lol. Same as I showed in discord earlier.
i was going off of being a complete reference, from what was generated. Im viewing it from the perspective of someone who has no idea what it might mean, so having somewhere to tell them to leave it alone is beneficial. (probably for paper configs as well)
was a pain, but think i got it
Change to <world> because it's every world folder, not specific ones only?
name: "<world>",
I think I would remove the border around the files, make them proper links, and remove the color from the folder, since they are not links
I also would want to expand this to include all files paper creates. not every file (like the whitelist or the usercache or whatever) need a whole page, maybe those could have a popup when you click on them with a short text? that popup could be reused for the config files that arent documented yet.
description: 'The range, in blocks, that exp orbs will combine at.
This behavior is not present in Vanilla and doesn't impact the usual merge range once spawned.
Set to 0 to disable.'
okay i see, i just feel the default should probably just be <version> or something to avoid to update that each time the version change since it's not important here, feel free to update the other config as well
This bit used to be commented out, but after the big config revamp the comment part was removed
8e1661f Remove reference to a guide that doesn't exist ... - Warriorrrr
slightly altered compared to the suggestion, what do you think?
for this config ive changed it to an empty string, displaying "N/A" in the actual docs
Not too sure on the wording, so suggestions welcomed. Disabling online mode in the server.properties is mentioned in the getting started guide at the very bottom, but worth mentioning on this page aswell
do we also want to mention this in the legacy forwarding part?
a1350da Remove doubly nested A tags that trigger browse... - olijeffers0n
Probably best to use the direct link? Its /paper/reference/server-properties#online_mode
For all intents and purposes, this PR is now finished so a review would be appreciated ๐ - Kenny's review was a while ago now
Still not a huge fan of "commands configuration" as a title, I feel like it makes it sound way more useful than it is... Not sure?
[PaperMC/docs] New branch created: faq
Should probably not be removed
Direct link with anchor is probably more useful here?
- **description**: Allows you to bypass the java version check. See [here](/paper/misc/faq#unsupported-java-detected-what-do-i-do) for more info.
Unsupported, early-access, or internal versions of Java are often missing features, have known issues or be straight up broken.
If you still wish to continue, knowing that you are on your own and will receive NO support, you can disable the check, a system property, as explained [here](/paper/reference/system-properties#paperignorejavaversion).
1e05754 Update docs/paper/admin/reference/system-proper... - MiniDigger
b920a15 Add faq page and java version check info (#240) - MiniDigger
[PaperMC/docs] branch deleted: faq
Could link reflection-remapper in the reflection section?
return CRAFTBUKKIT_PACKAGE + "." + clazz;
Class.forName(cbClass("entity.CraftBee"));
To access Paper internals, you can use the [paperweight-userdev](https://github.com/PaperMC/paperweight-test-plugin)
gradle plugin. This will allow you to decompile the server and access the NMS and CraftBukkit code. You can
Snap is not maintained by, or affiliated with, the Velocity project._
5173641 Add comparison matrix to Velocity comparison pa... - Malfrador
This adds the necessary description for the new compression-level config option in config/paper-global.yml
Waiting for the changes to be merged into Paper
Blocking for paper merge. Also, can you doc what the default value is please? In the description that is please โบ๏ธ
well, i checked if default values in the other places (where IntOr is used) are present and they aren't so I did not include it here as well for consistency.
wellllll, this is not exactly true, nowadays with mojang mappings we have much more packages
"add the dependencies" is pretty generic, especially considering you mention paperweight below (without saying its adding the dependencies)
Not that -1 would be of much use to the docs. The default is up to the deflate impl
if you mention this, should at least say something about caching stuff
should add a "unless you use the mojang mapped version of paper" here
this is only partly true, since paper fully deobfuscates this, I would say something like "in order to provide compability with legacy plugins, paper is reobfuscated at runtime" or something
deobfuscated, mojang mapped, names
should also add a reference to the data version here
generally, I have a really meh feeling about this. its nice that we have a place where we can say that people should depend on the package including the version, but the rest needs a bit more meat to be useful.
it also needs a ton of disclaimers and stuff that API should always be preferred, that using internals can cause damage if you dont know what you are doing, that there is no support, etc
I also dont like using the legacy, misleading, NMS term so often. its important that we explain ...
Not that -1 would be of much use to the docs. The default is up to the deflate impl
does that mean that including the value is unnecessary or not?
Can include the -1 being default, just you need to also explain that -1 means the compression will choose a sensible compression level.
Can include the -1 being default, just you need to also explain that -1 means the compression will choose a sensible compression level.
Should I also mention that Paper is using the velocity compressor and that the default is 6?
Personally i would say yes, as it gives people something to use as a reference to their values as well.
I'm not sure here? If someone else could give me a pointer please and thanks
I see what you mean. I have reworked the guide to refer to it as internal code rather than NMS, but still explain the abbreviation at the start. Let me know what you think - there is also a big danger admonition at the top
that reads better, just two things, we should have some headline with the nms term for seo purposes, maybe "what is nms" and explain the term there.
and the alert should have a sentence about prefering api instead.
Using Minecraft internals is not recommended. This is because using the internals directly is not guaranteed to be
We recommend using the [Paperweight Userdev](https://github.com/PaperMC/paperweight-test-plugin)
maybe?
description: 'A higher compression level means less data transmitted at the cost of more CPU time.
Plugin messaging is a way for Velocity plugins to communicate with clients and servers.
need opinions on this
I think the backend is good here
Blocking for paper merge. Also, can you doc what the default value is please? In the description that is please โบ๏ธ
Comments addressed :smile:
understand. Paper deobfuscates these identifiers for development, however in order to provide compatibility with legacy
comma here? or after however?
Using Minecraft internals is not recommended. This is because using internals directly is not guaranteed to be
The internal CraftBukkit code is relocated to `org.bukkit.craftbukkit.<version>`. This means that any attempts to reflect
must include the version. For example, `org.bukkit.craftbukkit.v1_20_R1.CraftServer` is the class for the server in
version 1.20.1. You can access these classes easily with some reflection utilities.
I don't really like this part personally
For example,
org.bukkit.craftbukkit.v1_20_R1.CraftServeris the class for the server in
version 1.20.1.
description: An overview to how Folia's regionizer works.
maybe?
description: Paper provides a downloads API that you can use to access builds.
description: An explanation of Bukkit's configuration file.
to match the other descriptions
description: An explanation of Spigot's configuration file.
Fixed by 3e39d2d6e49310fa6e15e1288723b045bb58b409
Partially fixed by #209, #221 and #230.
We should probably still explain commands.yml, help.yml and permissions.yml?
cc @olijeffers0n
fixes the blue (i) visible through the description box, tested on firefox
<span className={"config-explorer-popup-window-open-tag"} onMouseEnter={handleNodeOpening}>โ</span>
since you added mojmap, maybe that deserves its own paragraph. running a mojmapped server is a good way to simplify the toolchain for people that only write in house plugins, makes debugging easier, allows for hotswapping, etc.
i also moved it from the how-to folder to the API folder, to match the sidebar, but I'm unsure if thats the correct thing to do.
## Case 2: Sending a plugin message to a backend server
Additionally, BungeeCord channel compatibility is included, which may remove the need for a companion Velocity plugin in certain cases.
return server.sendPluginMessage(identifier, data);
When you need to receive messages from your backend server.
player -->|"1 (Incoming)"| Velocity -->|"2 (Outgoing)"| backend
backend -->|"3 (Incoming)"| Velocity -->|"4 (Outgoing)"| player
this sentence doesn't make a whole lot of sense
this might need a redirect?
I separated that so it explicitly says that it returns if it is successful, but I should probably include that in the docs itself
Since velocity has a target of java 11, it's not valid for all versions.
Nope, that's the path on disk. The slug (at top of file) is unchanged
Additionally, BungeeCord compatibility is included, which may remove the need for a companion Velocity plugin in certain cases.
Velocity manages connections in both directions, for both the client and backend server. This means Velocity
plugins need to consider 4 main cases:
This is for when you need to handle or inspect the contents of a plugin message sent by a player. You must register with the ChannelRegistrar for the event to be fired. An example use case could be logging messages from a mod that reports the enabled features.
Too many newlines - too disjointed (this might not have changed i just didn't like it :))
This is for when you need to receive messages from your backend server. It will require registering with the ChannelRegistrar for the event to be fired.
An example use might be handing a request to transfer the player to another server.
This is for when you need to send a message to a player.
i specifically included "channel" as other aspects aren't compatible (i.e plugins)
cool beans, just apply the rest of the diff please and thanks ๐
no, but its also present in production https://docs.papermc.io/velocity/dev/component-api/introduction
12783ad Add tracking range Y & fix monster light level - Machine-Maker
[PaperMC/docs] New branch created: fix/tracking-range-y
b040d26 Add tracking range Y & fix monster light level ... - Machine-Maker
[PaperMC/docs] branch deleted: fix/tracking-range-y
Velocity is not in active development. This is true.
https://github.com/PaperMC/Velocity/issues/1093
Velocity is still being worked on.
I don't believe this line is true? There were numerous items that did not have a block equivalent at that point in time. stick, flint, coal, string, most of the non-cake food items, etc
As communicated in the discord I took the initiative to add a tutorial for creating a project with help of the Minecraft Development IntelliJ plugin.
I did not yet take a look at typos or grammar and just want to gather some feedback for the overall structure.
I also changed the current project-setup markdown file to manual-project-setup.
The new_project_filled.png currently is not in use. This might or might not be added later.
For the list to explain the fields when creating...
You should use a domain you own, so something like io.github.<username>.<project> or me.<username> is also commonly used
If you want to streamline the process of testing a plugin, you can use the [Run-Paper]https://github.com/jpenilla/run-task) Gradle plugin.
but you most likely don't own me.<name> and not everybody has a GitHub account. I don't think this is to change.
Bleh, donโt like manual. Just leave it as project setup and then have the mcdev example
yes, you cannot just change slugs. You need to set a redirect in the vercel file
Alright,
I changed a few things:
- I moved
project-setupandmcdev-project-setupto a separate subsectionproject-setup - I changed the list to a table
- I reverted the slug
Now, with those changes I don't think we should leave the current project setup tutorial named "Paper Project Setup" since it should be obvious that we try to create a paper project. And it would look better if its just named "Project Setup" and the other one is called "McDev Project Setup". Maybe even just...
Yeah so this is ready for content reviews - iโm happy with the addition of a new folder but you need to add a redirect for the slug change :)
Yeah so this is ready for content reviews - iโm happy with the addition of a new folder but you need to add a redirect for the slug change :)
Dang it i forgot it again xd
Just one thing really, redirect lgtm
I think clarifying the two โpluginโs is needed
Something like this?
description: Step-by-step instructions on how to setup a plugin with the MinecraftDev IntelliJ plugin.
maybe change the first plugin to project and keep that Intelljj
Ok I changed it. Will push when I have more feedback.
1-2 simple examples of getting builds of a version or something on https://docs.papermc.io/misc/downloads-api.
These would probably be more useful than the Swagger docs
Since the CONTRIBUTING.md file in the Paper repository is the main source for information on contributing i think referencing or featuring it in the docs would be a good idea.
The paper contributing file is very different to docs. That included a lot of information about the patch system which isnโt used here. We also care a lot more about grammar and formatting here as well. Iโm going to close this but feel free to say if you feel otherwise.
[PaperMC/docs] New branch created: update_1.20.2
Whilst the automation PR pends, docs need updating now Paper is out of experimental. I chose not to update the example for the data version as I don't have a mc env around and also when automated, this will be static anyways
I moved the mcdev stuff over to misc and added a section for velocity plugins.
I also reverted the manual project setup back to its previous state.
My apologies, that wasn't quite what I meant by misc. I meant Paper/Dev/Miscellaneous - Sorry
| **Group ID** | The group ID of your project. This is used for Maven and Gradle. This is usually your domain name in reverse. If you don't know what you should put here, you can use something like `io.github.<yourname>` or if you don't have GitHub you can use `me.<yourname>`. |
[PaperMC/docs] New branch created: feat/seperate_topics
112dbdb Separate the sidebars out - olijeffers0n
Separates the sidebars for the projects for admin/dev/contrib.
I would also like to make it so that search results only show for the correct project. LMK if you know how
The project level separation I definitely agree with, separating the top levels of each project too however might be too much IMO. Tho, not a hard no on that, would need more opinions.
You mean like hiding the other projects at the top when you select one?
No, I mean that https://docs-k2bymnn76-papermc.vercel.app/paper/dev does not show administration or contributing in the sidebar.
I recently heard that Paper recommends 21, the latest Java LTS.
Could you please provide a link where you have heard it?
If you ask Paper discord about this they will say "use latest java LTS".
I honestly don't really mind suggesting/having docs to install 21.
Yea only 17 is required but moving the community forward sounds like a generally smart idea.
We'd have to note that down somewhere tho for sure and this 100% needs input from other team members.
primary: ["README"],
looks dum
"label": "Paper Contributing Guide",
match title here https://docs-k2bymnn76-papermc.vercel.app/paper/contributing
Why is cat here? The development docs don't have it
const [fetched, setFetched] = useState<string>();
My LSP complains about the typing being wrong here, and this seems more correct.
Does this need to have a return early if href isn't set yet?
I don't know how typescript we want to go, but ideally the props would have types.
I don't know if there is a better way than just defining a local interface like
interface SoftwareVersionProps
versionType: "maj-min" | "maj" | "min",
project?: "paper" | "whatever",
}
export default function SoftwareVersion({ versionType, project = "paper" }: SoftwareVersionProps) {
}
Same comments here as on the SoftwareVersion component.
[PaperMC/docs] New branch created: update_docusaurus_v3
7ef1228 Update to docusaurus v3 - olijeffers0n
Thanks for your interest in contributing! I am going to close this PR as it is a year old now. Should you decide you want to continue - please open a new PR ๐
lmk if there's a better way for now
lol, gotta put the code ticks inside the square brackets
The bukkit.yml has an optional worlds section that currently isn't documented, it's used for changing the generator/biome provider for specific worlds to ones from plugins
Example:
worlds:
world:
generator: pluginname:generator
biome-provider: pluginname:biomeprovider
Noticed that this line
was missing the word load between this plugin should and before or after.
Corrected Version:
25256a3 Adds missing word 'load' in paper-plugins guide... - DrakePork
https://docs.papermc.io/paper/aikars-flags#using-large-pages
-XX:+UseLargePagesInMetaspace
https://bugs.openjdk.org/browse/JDK-8243161
Is anyone still using Java 8 with Paper?
I have done some looking through the deployment and I believe everything is alright. If anyone can have a look through that would be appreciated :smile:
c75534f Actually import the Tabs so that they are rendered - olijeffers0n
These look like a good improvement, can I get this ready for review
So I have updated this. I made it off the back of the comments from community members however I am not sure how much this really improves the UX - let me know what you think
Just needs a merge from main please ๐
Similar to https://docs.papermc.io/velocity/built-in-commands
Todo: add Todo list with commands that need documentating
3.0 is out now. Looking at the changes between this pr and the actual release it should just be a matter of updating the packages.
The primary change is an update from MDX v2 to the newly released MDX 3
This sounds pretty major (i.e. v1 -> v2), but its actually just a few very small changes, hence why it was added at the very end. We don't inferface with MDX directly hence no changes are needed. ...
Yep! Got the notification too. I marked it as draft when the RC came out. Iโll be looking to update in the coming days around Uni work. Someone poke me if i forget ๐
I had missed this initially but the patch for @docusaurus/core can also now be removed because loading typescript config files is now natively supported https://github.com/facebook/docusaurus/pull/9317
Added a mention for that now.
a024f89 Remove Villager Exploit docs - olijeffers0n
[PaperMC/docs] New branch created: fix/remove-village-exploit-docs
The default value for this setting has been changed in PaperMC/Paper@6573d9555d80ebe8c70b9c36c4113251055761d3
60430fc Added HowTo guide for creating a plugin with th... - Leguan16
a18dce2 list send command in Velocity command list - Nacioszeczek
6af511d Document paperclip.patchonly (#122) - Phoenix616
ee25d4b Change default value for villager infection cha... - Sytm
490d9ca Merge branch 'main' into update_docusaurus_v3 - olijeffers0n
Okey, all patches are updated. Ready for reviewal
Okey, all patches are updated. Ready for reviewal
This should also mention the use of ChatRenderer.viewerUnaware as something that should be used if the message will not be different depending on who is getting it. This is more performant because the message will only be rendered once per player it's being sent to.
This guide will explain how to properly use the new `AsyncChatEvent` and its `ChatRenderer`.
I would maybe also mention somewhere that it is an improved replacement for the deprecated AsyncPlayerChatEvent#setFormat so authors who know of that can make a connection between the two.
I think before this happens, it needs to be made clear that the render method is something that plugins implement, they generally do not call it themselves. And they don't supply each of those arguments, its given to them when the render method is called.
Of course there are many more things you can do with Components in general.
This will throw if the prefix is null, also if we're going to use LuckPerms as an example, might want to link to the api docs for the LP API?
Why is the prefix in backticks here?
description: An outline on the AsyncChatEvent and how to handle it
Maybe some comments on the fact that it is Asynchronous as well? Looks like a good addition though
The Chat event has evolved a few times over the years.
If you want to learn more about Components, you can read the [Component Documentation](https://docs.advntr.dev/text.html).
readable XML tags. You can read more about it [here](https://docs.advntr.dev/minimessage.html).
```java title="ChatListener.java"
public class ChatListener implements Listener {
The ChatRenderer class is located in io.papermc.paper.chat.ChatRenderer so I would say it's papers way of modifying chat messages.
Why exactly should "Chat" be uppercase here?
Looks nicer i thinkโฆ doesnโt need to be though
Put the whole command in backticks?
I added an additional command above that will add the player to the admin group. Now it should not throw null anymore.
I addressed the requested changes.
Feedback about the placement of the docs/wiki link of LuckPerms and MiniMessage would be appreciated.
don't know why we'd bother mentioning the deprecated method here
Surely it's worth mentioning that you only need to instantiate this once? Or have ChatListener implement ChatRenderer and just pass this? Idk why we'd recommend instantiating a new object every time for no reason
don't really see why this is useful:
- plugins already exist that do this including one shipped by LP
- nobody would realistically be hardcoding the format like that, it should be using placeholders instead
- now we have to maintain docs based on an entirely external plugin
would be better to make it generic, just having a "how to use a configurable format" and then just have the example be MiniMessage with placeholders and a little "add your own here!" bit or something
@kezz I think it's good to mention what it replaces. We frequently get questions about what the replacement for setFormat is on discord, enough that I think its warranted mentioning it somewhere, somehow.
I added a note regarding the event being async, added a tip about the usage of ChatRenderer.ViewerUnaware and addressed kezz's comment about the renderer being instantiated every time the event is called.
I did not yet change the last section.
```java title="ChatListener.java"
public class ChatListener implements Listener, ChatRenderer { // Implement the ChatRenderer and Listener interface
```java title="ChatListener.java"
public class ChatListener implements Listener, ChatRenderer {
## Understanding the renderer
It seems that developers see it pretty hard to use the mob goal api, there should be a guide on how to use classes like
The javadocs aren't really great and there are no tutorials
Yep, this is an API that is often overlooked for NMS so I +1 this guide
am i right in saying this is often not a singular player but instead can be a collection of players?
Well in terms of this method it's a singular audience.
6afef02 Rework velocities title page to use mdx for doc... - olijeffers0n
[PaperMC/docs] New branch created: fix/velocity_title_page
Looks like the velocity landing page also isn't using the cards, maybe it should as well to be consistent? Regardless, this looks good