need someone familiar with Velocity to check whether the logic is correct, not familiar enough with it myself
#docs
1 messages ยท Page 4 of 1
// should be passed through, as if Velocity is not present.
When listening to `PluginMessageEvent`, ensure the result is
If the result is forwarded, players can impersonate the proxy to your backend servers.
Additionally, ensure the result is set correctly after actually handling correct messages, to prevent them from being leaked to the other party.
In there is:
The internal CraftBukkit code is relocated to org.bukkit.craftbukkit. unless you run a Mojang-mapped version of Paper. This is unlikely to be the case in most production environments.
I think may need to be updated as the current paper always doesn't have it unless someone has a reobfuscated version, which is unlikely in current most production servers
Idk how to properly change that so decided to make an issue and not a pr
If auto replenished is enabled, stationary containers can be re-looted. When broken, usually by players, the loot is unpacked and the loottable is destroyed.
The commit expands the wording to also cover shulker boxes, which work a bit differently. In case a player breaks them, they are immediately looted and loose their replenishment ability. In case of a piston breaking them, they cannot unpack their loot table as no player exists in the context, so they only loose their loot table if the...
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 4f690825f9fe9d43aa53c1f5c8a31aeb467236ab |
the shulker box's loot table if the shulker box has not been looted yet. Setting this option
Configures if breaking a shulker box via non-player means, e.g. a piston, should retain
Is there anything from my side stopping this from being merged?
would it be better to be below the mention of the bungeecord plugin channel compat?
as this is probably the most important information on the page, security wise, i would prefer it to remain above the fold, as well as remain emphasized.
after some deliberation, I initially thought it'd be better in Case 1, as the first section is more abstract and not really about handling the messages, but then it'd need to be reiterated in Case 3, so it's probably fine as it is
you can make the admonition danger for additional emphasis
[PaperMC/docs] New branch created: feat/velocity-forwarding-env
c391810 feat: Velocity forwarding secret environment va... - zlataovce
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | c3918105782749ccd007f66aef329395777c9170 |
3a6c2cc Velocity forwarding secret environment variable... - zlataovce
[PaperMC/docs] branch deleted: feat/velocity-forwarding-env
[PaperMC/docs] New branch created: feature/void-damage-config
- work
- Adopt new layout
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | eb68642c3ec14250abedab75d551f62d139db0fa |
[PaperMC/docs] branch deleted: feature/void-damage-config
This PR just update docusaurus to 3.5.2 and also migrate the devPackage for the tsconfig used by docusaurus.
the tsconfig currently used is for the v2 of docusaurus and not the v3.
PS: First time with pnpm and the "patch" i test in local and run.. i hope not forget any for update the patch (i just load the patch and commit again with the same changes)
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 105f022df3e8f0bc9f7b0ea34c927dbfc5b5b067 |
59f4c97 chore: update Docusaurus to 3.5.2 and migrate t... - Doc94
80201be feat: improve validation in Velocity plugin mes... - 456dev
Formatting needs to be double checked.
Currently the formatting in codeblocks is not consistent. On some pages it's 2 spaces and in other it's 4 spaces.
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | b6dd18d37eec2c9b7d965c4e0d9cdc3de8830996 |
a192539 feat: Add docs for new alternate-current config... - Machine-Maker
[PaperMC/docs] branch deleted: feat/ac-config
compileOnly 'io.papermc.paper:paper-api:%%_MAJ_MIN_PAT_MC_%%-R0.1-SNAPSHOT'
<version>%%_MAJ_MIN_PAT_MC_%%-R0.1-SNAPSHOT</version>
compileOnly("io.papermc.paper:paper-api:%%_MAJ_MIN_PAT_MC_%%-R0.1-SNAPSHOT")
sample code from the Fabric wiki on contextual suggestions doesn't work
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | ad6905055e6eb2e5f67bfd979f8b504b9d6673a1 |
some nitpicks, otherwise looks nice!
I don't think the link is necessary, as it basically reiterates what is said above
method in `CustomArgumentType`, or using the `suggests(SuggestionProvider)` method to define a `SuggestionProvider` for the argument.
The download page and some parts of the docs still use the older 3.3.0-SNAPSHOT version of Velocity, while that updated 3 weeks ago.
Other parts of the doc that seem to be affected:
f29ea4b feat: Improved brigadier documentation (#436) - Hinterhaeltiger
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 32b51e76126ae9e95297ca1a5fbfb9fe070a03ff |
I think you can remove the NotNull annotations it's better to assume types are not null by default
Some properties are not documented:
paper-global.yml:
- block-updates
- disable-chorus-plant-updates: false
- disable-mushroom-block-updates: false
paper-world-defaults.yml
- entities
- behavior
- player-insomnia-start-ticks: 72000
- spawning
- ticks-per-spawn:
ambient: -1
axolotls: -1
creature: -1
monster: -1
underground_water_creature: -1
water_ambient: -1
water_creature: -1
- ticks-per-spawn:
- behavior
- tick-rates
- dry-farmland: 1
- wet-farmland: 1
This adds documentation for the minecraft.api.session.host and minecraft.api.services.host system properties.
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | df52f68d1cdad36e116f592ed5e4ad98eb02fb5f |
Are these the only system properties provided by Minecraft?
7223917 chore: update spigot config and vanilla-like guide - Lulu13022002
Are these the only system properties provided by Minecraft?
Well I didn't look everywhere (they aren't exactly in the same place in the source code...) and in this area there is only an additional one to switch to the staging URLs of the official Mojang API servers via a single system property which don't seem to be useful in the Paper context hence why I decided to not include that. (And if you need those URLs you can set them manually via the documented values anyways)
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | de0a415050a709671e0fb7212603abd1ff97dcdb |
Instead of hardcoding a version value or focing the user to fetch it itself (previous change to this site), it should just be fetched live.
I have no idea what I am doing, so suggest changes freely
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 23a0af35c68c196d1119fc140d47623cddc7a6b9 |
No idea what the format issue is. If somebody can tell me, please do so
I'm not particularly fond of creating another component just for userdev, I'd much rather have it be a part of VersionFormattedCode (+ the placeholder should be documented in CONTRIBUTING.md)
@zlataovce actually thinking about it, maybe I should put that util method into util/versionUtils.ts. Give me a second
@zlataovce actually thinking about it, maybe I should put that util method into util/versionUtils.ts. Give me a second
yes, it should be cached in an expiring value
Docs PR for PaperMc/Velocity#1427
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 1216d0bc8e7065bc3d51a15a301258000164c5a8 |
If the provided message starts with `"`, `[`, or `{`, then the message is attempted to be parsed as JSON.
When I tried to build this for myself I saw that HANGAR_API_TOKEN was instead called HANGAR_TOKEN this fixes that.
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 5e40fc5d47bb80172c2369e0585c74109c2ca97c |
[PaperMC/docs] New branch created: deps/docusaurus
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 2872c530663eb15475b2a7c8f39241ddd3fbe7b9 |
6d98e16 chore: update to Docusaurus 3.6, adopt rspack a... - zlataovce
[PaperMC/docs] branch deleted: deps/docusaurus
As the site wiki.vg is soon ("November 30th") to be sunset, references should be replaced with their own docs or redirects to a another source.
wiki.vg sunsetting post:
https://tkte.ch/articles/2024/11/11/sunsetting.html
References in the docs (at the time of writing, only 3 references, and 2 distinct ones):
https://github.com/search?q=repo%3APaperMC%2Fdocs+wiki.vg&type=code
At the time of writing, it seems possible that wiki.vg will be merged into m...
I think we should wait until we know more. Replacing it now until Minecraft.wiki merged wiki.vg seems like a unnecessary effort I would say.
Yeah, absolutely, it shouldn't be rushed, I just wanted to raise awareness because the information didn't seem that widespread.
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 371b4e45ebef560f67b2b58b50d6f397c709f334 |
If disabled or not specified, the entity will simply despawn according to Vanilla rules.
A server-introduced despawn time after which the entity is forcefully despawned.
Fixes a small typo in the BukkitRunnable section of the Scheduler page, where it uses task.cancel(); when it actually should be this.cancel(); as mentioned.
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 5f3a46fc6e98e2d1ce06c01e357233dc11aa8a8f |
Adds a page at /common-sense which is a nicely worded message telling someone they need some help mentally.
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | ea63bfced61f02b7bf60f612164726f2488529be |
I don't see the informational value of having such a page, to me it mainly comes off as rude if I were the recipient of such a link
I don't see the informational value of having such a page, to me it mainly comes off as rude if I were the recipient of such a link
thats kinda the point
Bump minimum velocity version to 21. It appears intentional that Velocity is ran with at least Java 21 since parts of the code base rely on specific Java 21 features. Such as commit https://github.com/PaperMC/Velocity/commit/ecf936f35665f9fd0f65ee114062cfbda2b89bf6.
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | c054bdd588c4272cb7056128d5818827a55666cf |
that commit looks like it was made to be compatible with versions <21 and the defined toolchain is still Java 17, so I'd appreciate it if someone from the Velocity team could weigh in here (cc @4drian3d)
maybe it'd be worth to specify a different recommended version beside the minimum version
e759306 Replace british spelling - olijeffers0n
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | f4b89ebca28c818dbc89473abf0e9a7ce5fc8389 |
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | fd72c0cec357eaadbc071976befcd84ed7aac2cf |
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 58fb7df0244c6e962c683fe9bfebe5fd293ae7aa |
-
Updated mod ProxyCompatibleForge description to include from 1.14
-
Added Legacy "how too" for Forge 1.12.2
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 9907d54e6c6525511f191e6086b81ba7b30e98ea |
Update event.mdx to remove deprecated velocity API usage.
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 45482b6d21c5c778958460810a46fcadd29715aa |
Every listener has a <Javadoc name={"com.velocitypowered.api.event.Subscribe#priority()"} project={"velocity"}>`priority`</Javadoc>.
:::note
Due to compatibility constraints, you must specify <Javadoc name={"com.velocitypowered.api.event.PostOrder"} project={"velocity"}>`PostOrder.CUSTOM`</Javadoc> in order to use this field.
:::
or maybe a warning ๐คท
@Subscribe(priority = 100, order = PostOrder.CUSTOM)
Due to compatibility constraints, you must specify <Javadoc name={"com.velocitypowered.api.event.PostOrder#CUSTOM"} project={"velocity"}>`PostOrder.CUSTOM`</Javadoc> in order to use this field.
@Subscribe(priority = 100, order = PostOrder.CUSTOM)
This getting merged?
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 6f84cfdd9105ff61d2c7ed50d7a65b231e5d870a |
as there are no existing guidelines (to my knowledge), this needs a go-ahead from the core/Hangar team
otherwise seems to be fine, considering the logo mark looks to be a derivative of the Paper one
Is there a reason why it's between Paper and Velocity and not after Velocity? Just curious. ๐
Is there a reason why it's between Paper and Velocity and not after Velocity? Just curious.
It doesn't make any sense, it's just that I think the icon of papermc is more similar to hanger.
Just a very quick fix to jmp pushing out an experimental version of userdev, which should not be suggested as the latest version in the docs rn.
[!NOTE]
It would make sense to filter out pre-release versions on the GitHub api side of things, but as the current beta release is marked as a full release, that is sadly not possible for this exact case
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 04b720034b648b4ec79e9d8eeb7fa5194712c5d7 |
7800b60 fix: beta versions being included as latest ver... - Strokkur424
This PR aims to improve the documentation for Paper's new way of declaring commands using the Brigadier API.
[!WARNING]
Do not merge this PR yet, as it is incomplete. You can check out the current state of things below:
Roadmap:
- [ ] Add Bukkit Paper command comparison
- [ ] Introduction page
- [ ] Native Arguments (StringArgumentType, IntegerArgumentType, etc)
- [ ] Player/Entity Selector Arguments
- [ ] Registry Arguments (The current arguments page)
- [ ] Common I...
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 159f2d46a02ee57ccb16a61c919f0188f6b25c88 |
662654d feat: swap to a version tag rather than strict ... - olijeffers0n
[PaperMC/docs] New branch created: feat/remove-versioning
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 662654d4ac8127bfca8f31868766676515516968 |
With the "Experimental" release of Paper Item Component API, apart of the messages in the feedback thread i think is necesary a section in docs for a guide for the use of them, mostly the things related to Registry things (like tags).
The StringArgumentType.word() supports alphanumeric values, and these: +, -, _, ..
Will update the description once I will be revising that file, thanks for clearing that up!
add version where strict error handling has been removed
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 51ab7fee4b9ebb0b6e8c7e7b1e1dd745a6ed5506 |
976cca9 feat: rebrand "paper plugins" as "lifecycle plu... - MiniDigger
[PaperMC/docs] New branch created: lifecycle-plugins
todo:
- minecraft internals page vs advanced/userdev.
- /paper/reference/lifecycle-plugins screenshot update
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 4b00f1b66fbaf19c1596393cf861686b717aa875 |
Maybe show an example of the error here?
# Adding plugins to your Paper server
This argument provides the user with the ability to select between the 16 build-in "named" text colors. This argument returns a `net.kyori.adventure.text.format.NamedTextColor` that
Didn't know what to name this issue, feel free to change it
The start script generator doesn't use the recommended values for >=12GB of RAM
-XX:G1NewSizePercent=40
-XX:G1MaxNewSizePercent=50
-XX:G1HeapRegionSize=16M
-XX:G1ReservePercent=15
-XX:InitiatingHeapOccupancyPercent=20
source Aikar's blog: If you are using an Xmx value greater than 12G
I believe the 12G+ tweaks are not recommended for modern Minecraft versions as they cause more GC issues than they solve, so that's why they're not used nor mentioned on the Aikar's flags page
Regarding the lot of recent questions about userdev on 1.21.4, this PR adds a warning so make people aware of the need for gradle 8.11.2 and the beta userdev releases.
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | dc649df7b1248e6ca14df5868798ba5802147281 |
not a fan of that โ(Not 8.11!!)โ
out this site from the Gradle docs: https://docs.gradle.org/current/userguide/gradle_wrapper.html.
out this site from the Gradle docs: https://docs.gradle.org/current/userguide/gradle_wrapper.html.
Overall, I like these docs a lot. They are very in-depth and offer sufficient examples to allow users to understand them.
Some of the pages can get quite text rich, however most is necessary.
# Comparing Brigadier and Bukkit Commands
Approved from a technical and feature POV. Help wanted for if this is better than the current sidebar
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | f83f1b03e95d6af1983b201718713977fcf54dd9 |
Looks good. I still want to do the thing where the "Development", "Admin" things are on the top of the page and you change between projects by the logo/project name however.
But this still works with that, making the whole sidebar just development
2aa3c64 Add Data component documentation - Owen1212055
[PaperMC/docs] New branch created: feat/data-components
Please feel free to make modifications directly to the PR.
This is meant as an initial base.
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 12382fb93ca04e3c7677de242f95f5e0c8862a5c |
145df9b Document obfuscation changes - Owen1212055
[PaperMC/docs] New branch created: obfuscation-changes
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 145df9bb462ec1bb0c8318de9fa6efa99a008050 |
I'm not sure if the sidebar icons add any value to the navigation experience, it just seems like visual clutter to me; maybe make them a little smaller and darker (to make the page/section names stand out more)?
visual bug when page names are wrapped (icons are shrunk)
<img width="311" alt="image" src="https://github.com/user-attachments/assets/9893d1b0-62c0-4ad5-8069-eb6295af4176" />
light mode makes the sidebar icons blend in with the background completely
how items look to other players.
This may be useful if you want to hide certain components not important to other players.
Controls whether the item count for items with the item model of `minecraft:elytra` should be hidden from other players.
default: "[minecraft:lodestone_tracker]"
Definitely helps a ton with understanding data components.
One thing I would maybe suggest to add is a small line which explains whether you can use ItemMeta and DataComponents concurrently, since I am not quite sure about that, even after reading your docs.
Perhabs remove the "programming interface" part, as that is already contained within API. Also add a line wrap for better readability in-editor
The Data Component API provides a version-specific interface for accessing and manipulating item data that is otherwise not representable by the `ItemMeta` API.
Through this API, you can read and write properties, called "data components", of an item in a stable and object-oriented manner.
I think you meant to say tool here?
itemStack.unsetData(DataComponentTypes.TOOL); // Remove the tool component
The patch also allows for removing components that were previously in the prototype. This is shown by
Maybe make it clearer what this link does?
For implementation details, [click here](#example-cool-sword)
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 3393b1de4748bca008a9715fa81c54f29b07869f |
This PR removes the filtering out of beta versions from the latest-version fetch in order to display the now pretty much stable beta builds, as they are required for 1.21.4 support and provide fixes for older versions as well.
Furthermore, I have added a reference to the Gradle wrapper page for updating your Gradle distribution and added a reference to the #build-tooling-help channel from our Discord server for people seeking further support.
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 42cb066d70c10b9016358a6b9ab60c89340de32e |
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 683794aa23bc2aae66728f04e470517948dc2103 |
ef0c8be feat: add 'GetPlayerServer' message type (#518) - Timongcraft
9c63a9a chore: Update userdev version page (#517) - Strokkur424
599b226 chore: amend return name for getPlayerServer - olijeffers0n
should be open for reviews now!
- Added
IPOther(existed but not documented) - Fixed
IPoriginally used the description ofIPOther. - Added missing
theforUUID.
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 19eb340e3c301a28e57e2cd271a68629581e9fe2 |
The hidden data components can be extended or reduced via `also-obfuscate` and `dont-obfuscate` respectively.
94ea6e0 Update config-specs/paper/paper-global.yml - lynxplay
d15224c fix: make empty arrays in config not suck - zlataovce
The docs are really good. Couple of nitpicks that i saw though.
I am concerned about the video file size a little bit. One is 20MB. These could be compressed potentially but unsure if this is the best route to take. I know this was discussed in the past
Why are they spaced like this here but nowhere else
Yeah. Those are parts that have not yet been added to the documentation, due to the PR being huge enough already, but I still included these in the introduction. There are two ways I can see this resolved, you may choose whichever you find more fitting:
- I temporarily remove these so that it doesn't cause any confusion.
- I add a notice at the top mentioning that the documentation is not yet complete and and those topics below, which do not have a link to a site, will be added further do...
That's probably a something that I had in since something was buggy but I couldn't figure out what, so I temporarily formatted those imports differently to see the path better. Will change it to be consistent with the rest.
I am concerned about the video file size a little bit. One is 20MB. These could be compressed potentially but unsure if this is the best route to take. I know this was discussed in the past
I haven't been made aware of any such discussions. If you wish, I can reduce the file sizes a bit
At the top? I would suggest adding a todo behind those future links, so something like this for example:
- **The Command Dispatcher** (This page will be added at a later point in time)
There is room for improvement, but I think this format is better than putting the notice at the top.
At the top? I would suggest adding a todo behind those future links, so something like this for example:
- **The Command Dispatcher** (This page will be added at a later point in time)
There is room for improvement, but I think this format is better than putting the notice at the top.
I ended up wrapping it all in a red content box. Do you think that's all right?
I reduced the file sizes very drastically whilst still keeping it somewhat high-quality. Hopefully that should be enough?
Within Linux's chmod system, +x grants all users access to execute the file, whereas u+x only grants the user who owns the file access to execute it. Provided the user is the one who created the start.sh file, there's no reason why this permission change wouldn't cause issues, but it's good to get into the habit of using "least privilege" when assigning permissions, and I know from personal experience that hosting Minecraft servers can be the start of a career in sysadmining.
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | d63237239daf807e74b6156f1f33f41e9a6ed626 |
I like the idea of encouraging better habits, maybe we even should actually explain what the command does, i.e. "then run chmod to make the file executable"
import ComponentMp4 from "./assets/vanilla-arguments/component.mp4";
import KeyMp4 from "./assets/vanilla-arguments/key.mp4";
import NamedColorMp4 from "./assets/vanilla-arguments/namedcolor.mp4";
import StyleMp4 from "./assets/vanilla-arguments/style.mp4";
import SignedMessageMp4 from "./assets/vanilla-arguments/signedmessage.mp4";
description: Documentation for all arguments returning Adventure API objects.
adhere to the style guide in the contributing guide, second level headings should be Component argument (the argument part could additionally be stripped entirely as this entire page is dedicated to them)
This argument is very technical. Following the same format as the `/tellraw <player> <component>` command for its second argument, it expects the JSON
I don't think arguments needs to be repeated if it's in an appropriate category (the same applies for the file names)
slug: /dev/command-api/arguments/adventure
* With a `s` suffix: This resolves to seconds, meaning multiplying the first number by 20. (`/timearg 1s` --> 20 ticks)
I mean, it is still under the org.bukkit package, making most of this still Bukkit API. I could think about renaming them to just API objects or, as you have suggested countless times, Paper API
I think it could be nice to include more information on how to work with Paper's source code. This would include not only information for contributors, kinda how we already have the Events page, but also information regarding how to correctly fork Paper (use paperweight to do so) and maintain your own fork.
The following pages are what came to mind first. I wish to ask for anybody to suggest more pages or changes to these:
| Page name | P...
Contributing to Paper should mention that bigger changes should be discussed in an issue first.
[PaperMC/docs] New branch created: fix/roadmap-upstream-duplicate-methods
3514c12 Change roadmap for duplicate methods to fit har... - NoahvdAa
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | 3514c129c06fe6ca1beffa4c6ef8bb2289139ec5 |
That's a very good point. It should avoid that people do 2k line PRs and end up being rejected because it doesn't fit the scope of an API.
Furthermore, the forking page could just be a very quick reference to where you can find information about it, doesn't have to be a full-on guide. Just so that we have something to throw at people who ask in #paper-dev on how to create a fork. With all the tooling in the right place. I think people who really need to fork, will somehow figure it out
It should avoid that people do 2k line PRs
It won't avoid it as not all contributors will read that guide. We can only do as much to minimize the amount of huge PRs that get rejected in the end.
A how to create a Paper fork page sounds nice in general.
[PaperMC/docs] New branch created: feat/remove-target-selector-tag-fix
d4e4e1c Remove option for target selector tag completio... - Warriorrrr
<!-- refined-cf-pages-action:deployment-summary:docs -->
built with Refined Cloudflare Pages Action
โก Cloudflare Pages Deployment
| Name | Status | Preview | Last Commit |
|---|---|---|---|
| papermc-docs | ๐จ Building (View Log) | d4e4e1c6414c3b90abe7e2a4e89f1d91e18dc502 |
I like the idea of this PR, maybe a paragraph like this works better though?
Once you've saved the files, open a terminal (or log into the machine) if you haven't already. Navigate to the directory where you have placed the Velocity JAR file and the start.sh file. Then, you will need to prepare the start.sh script to be executable and run it.
-
Run
chmod u+x start.sh. This command modifies the file's permissions, granting the file's owner (you) the ability to execute (x) the script. Without this step, the system may not recognize the script as something that can be run. -
Now that the file is executable, run
./start.shto run the script.
I like the idea of this PR, maybe a paragraph like this works better though?
Once you've saved the files, open a terminal (or log into the machine) if you haven't already. Navigate to the directory where you have placed the Velocity JAR file and the start.sh file. Then, you will need to prepare the start.sh script to be executable and run it.
-
Run
chmod u+x start.sh. This command modifies the file's permissions, granting the file's owner (you) the ability to execute (x) the script. Without this step, the system may not recognize the script as something that can be run. -
Now that the file is executable, run
./start.shto run the script.
I like this implementation a lot more, thanks! One thing, could you please rename this
vanillawithin the ConfigDocBlock to something more likeshowVanillaValueor something slightly more self explanatory. Good to merge then
changed the param name.
Fixed the casing of the headers in the upcoming commit
Did the change and mentioned the main thread executor in an upcoming commit
For support regarding the command API, you can always ask in our [Discord Server](https://discord.gg/PaperMC) in the `#paper-dev` channel!
I would capitalize it to keep it consistent
Why not link to adventure here? (in paper docs, ore the kiory ones)
Might want to link to LuckPerms as well
I think having a link to the Style (javadoc) (maybe Key and NamedTextColor as well) would be nice.
Especially because you have it for some other simple stuff like NamespacedKey.
This should throw an error see above
Small typo there in the argument
The wording is weird there "a method a pass a reference"
Same here don't depend on EntityType#name
Same here see above comment about translatable
This should be an error
This is not the usual way for primitive like this, you can use the built-in method: BoolArgumentType.getBool(ctx, "allow") same for other argument types defined by Brigadier. Probably best to have it commented tho since it's the first example but for others it's fine.
I am avoiding throwing command exceptions for the same reason I am avoiding returning an integer directly - just to keep it consistent and not confuse a user. I am definitely going to be making a separate page for command exceptions as they have quite a few features associated with them as well, but I think I'd keep it as a simple message to the sender for now.
If you explicitly think that is the wrong decision, I have no problem to add exceptions anyways. But I would at least wait with that until the exception page is ready so that I have something I can link against inside a "note" block.
I am not entirely sure what you mean now. Is it fine for me to use ctx.getArgument even for primitives, or should I replace all of those primitive instances with their respective Brigadier-own parsers? Obviously I would comment the usage of Brigadier's own as a side note, even if the CommandContext-way is deemed fine
I agree with the author here. The purpose is not to explain command errors. Everything around arguments should be kept as simple as possible in my opinion.
Otherwise users might get confused since they are just checking how an Argument works and are suddenly confronted with something they might have not seen. If they want to learn about Command Errors they can do so by reading separate pages in the future.
I decided to instead just display the entities' names. It looks cleaner regardless
Yes i'm fine with it at least return the right exit code it's definitely not a success
Yeah I noticed it too. Definitely fixing that
I seem to have forgotten these ones: ENCHANTMENT, ENTITY_TYPE, MEMORY_MODULE_TYPE, PARTICLE_TYPE, POTION, TRIM_MATERIAL, TRIM_PATTERN.
I am unsure how that happened, but I will be adding them in
It's the same parser, just nicer to use i would keep getArgument for the first ones (with the alternative commented) but then in the more advanced part migrate to the shorter equivalent.
You have both Art and Painting variant overview in the registry arguments page. Ideally names should be consistent either use bukkit name or the name in game.
This method is available on ArgumentTypes
The method is getRegistry
This is not the right usage the command is bukkitparty not party
You have both Art and Painting variant overview in the registry arguments page. Ideally names should be consistent either use bukkit name or the name in game.
For the command, I always use the registry name and for the name (the header) I use the backing object type. This is consistent with the other registries (E.g Music instrument). I can rename the headers to be consistent with the name of RegistryKey.XYZ and the in-game command though
The name is not consistent with the rest of the methods too
This is the wrong extension it should be a source file (.java)
This is not consistent with the rest of the methods ending with "Argument"
Wrong extension again, even if the source is not complete.
Would be better if the tags were closed to not include the dot or just delete the dot but even then closed tags is better in this context
I mean, I originally put it there as a way to say that it isn't something you put into your own code, but in hindsight it really makes no sense. Will change it
[!NOTE]
This issue is part of a series of issues regarding the extension of the Paper documentation regarding Paper's Brigadier API.
It would be great to document the RequiredArgumentBuilder#suggests(SuggestionProvider) method in order to provide a way for developers to suggest possible input without the need of creating an entire custom argument.
For this, it would be good to examine the SuggestionProvider<S> interface and explain its usage.
An example should also be added. A possible example could be an String argument that suggests values out of a List<String>. It would also be noteworthy to mention good practices, such as filtering by current user input.
A code example should also be given. E.g:
final List<String> suggestions = List.of("first_element", "another_element", "weee");
Commands.literal("customsuggestions")
.then(Commands.argument("input", StringArgumentType.word())
.suggests((ctx, builder) -> {
suggestions.forEach(element ...
[!NOTE]
This issue is part of a series of issues regarding the extension of the Paper documentation regarding Paper's Brigadier API.
In addition to custom argument suggestions, normal custom arguments should also be documented. This would have two parts. For once, the standard CustomArgumentType<T, N> and its methods should be documented and given an example to. Secondly, CustomArgumentTtype.Converted<T, N> should also be documented.
One point to definitely mention is the inability to provide the red client-side text in case the argument is invalid, since for that the client needs to do validation, which custom argument types do not do, since they actually only send their native type (and on tab complete possible suggestions) to the client, not their parser.
For the standard custom argument type, a MiniMessage-string styled Component argument could be created, since the native one expects its input as JSON, which is not very...
[!NOTE]
This issue is part of a series of issues regarding the extension of the Paper documentation regarding Paper's Brigadier API.
Currently, the documentation documents the separate aspects of Brigadier, but doesn't really bring all of them together in a real command. Therefore, it would be great if the documentation had a step-by-step creation of an actual user-friendly and refined command which provides some more logic. The command should display the usage of the following aspects:
- Permissions (using requirements)
- Nested arguments/literals
- Reused command executors (E.g. default value if an argument is not provided)
- Some visible change in-game
An example could be a skull-giving command, which has the following structure:
/skull
/skull <offline-player>
/skull <offline-player> <amount>
[!WARNING]
The command example really isn't a great one. I would appreciate it if somebody who has a better idea could suggest it here
It should be made sure that thi...
[!NOTE]
This issue is part of a series of issues regarding the extension of the Paper documentation regarding Paper's Brigadier API.
I think it would be really useful to have a FAQ/Common issues page that we can just link to people if they run into standard issues or have frequently asked questions.
Some of the FAQ points could include:
- "Can I declare commands using annotations?"
- "What is the earliest version I can use Brigadier at?"
- "How can I display a client-side error for my custom arguments?"
More can be taken from the Discord server #paper-dev channel. This definitely does not cover all of them
Some of the common issues points could include:
- Misplaced brackets deforming the command tree
Similar to the FAQ, I just couldn't think of more in this short time. The #paper-dev channel can be used as a reference + you can suggest some here on this issue
Furthermore, I think a section about community-driven command frameworks could be useful. The Brigadier API was m...
[!NOTE]
This issue is part of a series of issues regarding the extension of the Paper documentation regarding Paper's Brigadier API.
I feel like it'd be great for returning users to have a very simple and quick reference they can use to refresh their knowledge on certain aspects.
For example, there could be a section called "permission declaration" which quickly repeats that one can use the requires method to check the sender's permission in order to execute and view a command or argument.
Possible aspects referenced could be:
- Argument declaration
- Argument retrieval
- Permission declaration
- Difference sender and executor
- Custom argument suggestions
- Custom arguments
- Registering commands
[!NOTE]
This issue is part of a series of issues regarding the extension of the Paper documentation regarding Paper's Brigadier API.
The command dispatcher is retrievable using Commands#getDispatcher(). With it, one can query/modify/register commands. It can also just be used to work with the root command node in general.
All of its methods should be explained. An example on how to use most of them does not have to be given, since the usage of the dispatcher assumes a user to have general knowledge about the internal functionality of commands.
Though, an example for extending existing commands can be given. For this, one could extend a vanilla command to include their own sub command. Perhaps, this could be done for the /effect vanilla command:
final CommandDispatcher<CommandSourceStack> dispatcher = commands.getDispatcher();
if (dispatcher.getRoot().getChild("effect") instanceof LiteralCommandNode<CommandSourceStack> literalNode) {
dispatcher.register(lit...
[!NOTE]
This issue is part of a series of issues regarding the extension of the Paper documentation regarding Paper's Brigadier API.
Continuing with the advanced topics, there should also be a page noting the usage of .fork, .forward, and .redirect. Thanks to https://github.com/PaperMC/Paper/pull/11868, this can now be achieved without the usage of internals or userdev.
Basically, the difference between these "flow controlling" methods should be noted and an example should be given. Furthermore, a reference to the CommandSourceStack#withExecutor/Location should be included. The fact that this is only available since the middle of version 1.21.4 could also be helpful.
A possible example could look like this:
final CommandDispatcher<CommandSourceStack> dispatcher = commands.getDispatcher();
final LiteralCommandNode<CommandSourceStack> node = dispatcher.register(Commands.literal("say")
.then(Commands.literal("hi")
.executes(ctx -> {
if (...
[!NOTE]
This issue is part of a series of issues regarding the extension of the Paper documentation regarding Paper's Brigadier API.
Bringing together #533 and #532, the concepts explained in both of those pages can be used to provide an example on how to extend the most complicated command vanilla offers: /execute.
This is to serve as a technical example in order for people, who seek to actually use this kind of command modification, to have a reference to go back to, but also serve as a great learning point for people who wish to further deepen their knowledge about Brigadier.
A possible extension to the command could be the addition of /execute permission in order to only execute a command if the executor actually has a permission. If you have a better idea for an extension, be sure to suggest it!
The code for such an extension might look like this:
private void registerExecuteExtension(final @NotNull Commands commands) {
final CommandDispatcher<CommandSou...
I'd rather not be a blocker here, please feel free to checkout this branch and make modifications. :)
I sadly cannot dedicate much time to fix this, but i'd like to get this through in some degree.
[!NOTE]
This issue is part of a series of issues regarding the extension of the Paper documentation regarding Paper's Brigadier API.
Combining with #528, it would be very useful to have documentation on CommandSyntaxExceptions. This should cover the build-in exceptions as well as the SimpleCommandExceptionType implementation of the CommandExceptionType interface.
With so many pages in the documentation, it might be hard for users to find the correct page for a question or topic. For this reason, I propose the addition of a search bar.
That could just be a small icon on the top-right which has a simple "look for matches in titles".
Another possible way to look for pages is that we add a new property at the top of each page which contains certain keywords described in the page.
So for example, for the userdev page, we could add the following content keywords:
keywords: 'gradle', 'userdev', 'paperweight', 'internals', 'mappings'
Looks good. The index page still says this page is a WIP though. Needs updating :)
611bd61 chore: Explain paper-world-defaults.yml's tick-... - codeHusky
I mean, I didn't even mention this specific page in the WIP section. But I did add it now. Anything else?
Small typo SuggestionsBuilder
This could be better using the new Player#give method to handle stack size properly. But if you think it's too complicated the first empty slot could be saved in a separate var.
amount is better for the argument name i think
For implementation details, [click here](#example-cool-sword).
### Reading a valued data component
When comparing items, you sometimes want to ignore certain values. For this, we can use the
ed6bf06 fix: misc improvements (#535) - Strokkur424
[PaperMC/docs] branch deleted: feat/data-components
[PaperMC/docs] New branch created: feat/tripwirehook-dupe
d702430 Update paper-global.yml - Owen1212055
Resolve #540
"Thanks" IJ for the style changes i dont request...
nothing happen here, i just dont use search and edit the first thing before to read.. nono.. that not happen.
02c75f0 Document skip-tripwire-placement-validation (#541) - Owen1212055
[PaperMC/docs] branch deleted: feat/tripwirehook-dupe
[PaperMC/docs] New branch created: feature/pdc-next
cad688b Document more pdc usages in the API - lynxplay
See: PaperMC/Paper#12022
- The persistent data container of an `ItemStack` has historically been accessed by
the `ItemStack`'s `ItemMeta`. This, however, includes the overhead of constructing the entire
`ItemMeta`, which acts as a snapshot of the `ItemStack`'s data at the point of creation.
It can be accessed via `OfflinePlayer#getPersistentDataContainer()`.
`ItemStack#getPersistentDataContainer()`.
I wanted this to be a "give" which allows for oversized stacks (like 64 of ender pearl) without modifying the max-stack-size component. The new give wouldn't allow for such. I did now move the firstEmpty to a separate variable though.
MiniMessage.miniMessage().deserialize("<green>Suggestion tooltip")
- Using `LiteralMessage`, which can be used for basic, non-formatted text.
could a Markdown image be used here?

Looks good. The index page still says this page is a WIP though. Needs updating :)
eb14e71 feat: custom Brigadier argument suggestions (#536) - Strokkur424
itemStack.editPersistentDataContainer(pdc -> {
pdc.set(key, PersistentDataType.STRING, "I love Tacos!");
b7ea1ee Document more pdc usages in the API (#544) - lynxplay
[PaperMC/docs] branch deleted: feature/pdc-next