mirror of
https://github.com/PaperMC/Paper.git
synced 2026-11-04 08:52:01 -05:00
Compare commits
1179
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8f1fad8687 | ||
|
|
431b4245ea | ||
|
|
8f5f29305d | ||
|
|
4e8df4a990 | ||
|
|
3612df6d9c | ||
|
|
e3ba7b1dc8 | ||
|
|
05c2798ec0 | ||
|
|
02378ab582 | ||
|
|
67912d0827 | ||
|
|
e8a1f8fd68 | ||
|
|
1b9bf5c8e9 | ||
|
|
325f9071f0 | ||
|
|
d86d427405 | ||
|
|
2f1ce01e87 | ||
|
|
0d9bf08a23 | ||
|
|
e65c0765c6 | ||
|
|
ac9a1b2c72 | ||
|
|
0db5c93a3d | ||
|
|
2d602d68c1 | ||
|
|
2766dd30b1 | ||
|
|
03af8b4291 | ||
|
|
45fac22871 | ||
|
|
8c0b8396d6 | ||
|
|
bc68acd741 | ||
|
|
e13b4b3d41 | ||
|
|
a90108f43c | ||
|
|
dd585fda4d | ||
|
|
1b443e0ac8 | ||
|
|
29aeb6081b | ||
|
|
3bfa02fd65 | ||
|
|
09ee222482 | ||
|
|
22c663d327 | ||
|
|
4091869eed | ||
|
|
db93f621b3 | ||
|
|
7ec11b289e | ||
|
|
683e60c092 | ||
|
|
39887673fb | ||
|
|
dba08d2f25 | ||
|
|
be4b895635 | ||
|
|
b69f87e5ac | ||
|
|
f68a55a896 | ||
|
|
a0ded751dc | ||
|
|
a48059a2d4 | ||
|
|
06b855f0d3 | ||
|
|
56cab99fbf | ||
|
|
c927bd34ab | ||
|
|
b5eb5e0bfd | ||
|
|
4738ffe335 | ||
|
|
7ff575c99b | ||
|
|
ec0cd5c5ae | ||
|
|
6e1bb67eb1 | ||
|
|
cc7ee9aebd | ||
|
|
a2d844f71e | ||
|
|
6829d9e6cb | ||
|
|
03226a5838 | ||
|
|
fbec96a8fa | ||
|
|
abe55c5242 | ||
|
|
bd9daa8fba | ||
|
|
99867f8f92 | ||
|
|
c3ec3ae0c2 | ||
|
|
1a6b058db4 | ||
|
|
821b95fb15 | ||
|
|
b2d29a4fa8 | ||
|
|
46d4834e8e | ||
|
|
e3e060d74d | ||
|
|
d57def08de | ||
|
|
21a495c94c | ||
|
|
cc7b98af63 | ||
|
|
e63aca4337 | ||
|
|
16db242251 | ||
|
|
615e915d6b | ||
|
|
8097898e6d | ||
|
|
e8750e1c00 | ||
|
|
65ba985571 | ||
|
|
b3c6bcb83c | ||
|
|
a4b87cf896 | ||
|
|
bfb089d29d | ||
|
|
4728a906ed | ||
|
|
65c408ad2d | ||
|
|
2de3a930cc | ||
|
|
780818ff42 | ||
|
|
1dbde6108f | ||
|
|
1a7b626576 | ||
|
|
6e88e469fe | ||
|
|
371c96aa68 | ||
|
|
1d254ec493 | ||
|
|
60c8e563c2 | ||
|
|
ddb45eb495 | ||
|
|
a9d038271a | ||
|
|
6bc56abc92 | ||
|
|
288d43e108 | ||
|
|
ff3655a784 | ||
|
|
1c92a6c3a4 | ||
|
|
54024d3067 | ||
|
|
3d7125903d | ||
|
|
021713af28 | ||
|
|
769bc8c2a4 | ||
|
|
977da0dbb5 | ||
|
|
af5c198def | ||
|
|
c7dd4303da | ||
|
|
be053f7afd | ||
|
|
8832a8dd7b | ||
|
|
abfdaed87a | ||
|
|
c27ca36bf1 | ||
|
|
13eb8f29ca | ||
|
|
643a11a413 | ||
|
|
e5aa18b318 | ||
|
|
f83a0bae4f | ||
|
|
bfbe49cfa9 | ||
|
|
c0f1d039bb | ||
|
|
0fdc08858f | ||
|
|
8c95c89a45 | ||
|
|
f4eb9c2e63 | ||
|
|
d3ee2cfc67 | ||
|
|
5cbb5d6fa0 | ||
|
|
640efeeabe | ||
|
|
b23b725834 | ||
|
|
f6862603dd | ||
|
|
a091961346 | ||
|
|
d289ae1dfc | ||
|
|
08ca088b5d | ||
|
|
a15fed9c16 | ||
|
|
beac08f83f | ||
|
|
f8a210f1d7 | ||
|
|
d5cc7d4af8 | ||
|
|
217fb92a10 | ||
|
|
327052edf4 | ||
|
|
e1f150a5eb | ||
|
|
dd9d1031f0 | ||
|
|
dfbf6f4183 | ||
|
|
e863872fab | ||
|
|
298732599a | ||
|
|
be3fe45d6e | ||
|
|
f759838b85 | ||
|
|
18f05bb815 | ||
|
|
0c803ba1fa | ||
|
|
6db70e070a | ||
|
|
a22040d53c | ||
|
|
c13e3c9f0a | ||
|
|
baa0d82f7c | ||
|
|
93c9b2ab1f | ||
|
|
e6e9780e32 | ||
|
|
a255185980 | ||
|
|
98e0678512 | ||
|
|
9838b40808 | ||
|
|
8d93604641 | ||
|
|
1d60280c72 | ||
|
|
48e89d7f1b | ||
|
|
4e0ccd0f62 | ||
|
|
b4c7d1686d | ||
|
|
0fd1cf72ff | ||
|
|
3caa2d22ba | ||
|
|
1e37b938d9 | ||
|
|
71696fd5c3 | ||
|
|
cc95f009b7 | ||
|
|
ec0138a55d | ||
|
|
61151ca0bf | ||
|
|
f904ab5eaa | ||
|
|
8f14eca95f | ||
|
|
3ae366b5d1 | ||
|
|
1a3ca55caf | ||
|
|
c65d58b100 | ||
|
|
89e2530882 | ||
|
|
593b1c4186 | ||
|
|
f50b737129 | ||
|
|
0527579bbc | ||
|
|
c5c8f6cbbf | ||
|
|
4dee7c425b | ||
|
|
27553f52f7 | ||
|
|
ace932ed4e | ||
|
|
0f0cb00e6d | ||
|
|
db9f349679 | ||
|
|
2307f8f477 | ||
|
|
e5fe71723e | ||
|
|
50018799f2 | ||
|
|
a3b2cb162a | ||
|
|
a2a42c5b12 | ||
|
|
1797fbccf1 | ||
|
|
bb09b431d2 | ||
|
|
5d4f9bd0e4 | ||
|
|
bd0c804a19 | ||
|
|
27af5dde55 | ||
|
|
37dc5450d9 | ||
|
|
de518f79b5 | ||
|
|
0bdc80db32 | ||
|
|
c9e894d3cc | ||
|
|
11502e7a8f | ||
|
|
7e319978c4 | ||
|
|
6c8d413223 | ||
|
|
f5706462f8 | ||
|
|
1cd6d5799c | ||
|
|
9119d1d121 | ||
|
|
592da1c275 | ||
|
|
bdd78d0c5d | ||
|
|
6cd1c78e82 | ||
|
|
b1a33c6b1a | ||
|
|
2951b50613 | ||
|
|
ae22db2692 | ||
|
|
1f7285664c | ||
|
|
a40947c0ac | ||
|
|
02ef1cf05d | ||
|
|
7731202e1f | ||
|
|
5b3f87ac10 | ||
|
|
2035ad384c | ||
|
|
714512e3bc | ||
|
|
06a75871be | ||
|
|
c6e0c79af1 | ||
|
|
71fa8decd9 | ||
|
|
3c6ac856f8 | ||
|
|
1077163fa6 | ||
|
|
464d3003b3 | ||
|
|
0a993450f1 | ||
|
|
caf76f1f96 | ||
|
|
281bd76517 | ||
|
|
c692832618 | ||
|
|
b59e472cda | ||
|
|
e472fdbdd2 | ||
|
|
f538c61c2c | ||
|
|
a95ae8d00f | ||
|
|
4ba9bed2f6 | ||
|
|
782a076f0e | ||
|
|
26e81c4509 | ||
|
|
f9fb80b79e | ||
|
|
05277d4949 | ||
|
|
57d665efcc | ||
|
|
2d76c9c1d0 | ||
|
|
8a52ce8c27 | ||
|
|
572ef8fd03 | ||
|
|
26a624bc52 | ||
|
|
d5c888a77d | ||
|
|
41a2e07ac2 | ||
|
|
1220b0c3a9 | ||
|
|
a00ccce33c | ||
|
|
ccee0479b2 | ||
|
|
5563e58283 | ||
|
|
013d163927 | ||
|
|
4b3b3974f3 | ||
|
|
c1408c2db1 | ||
|
|
a7292641d6 | ||
|
|
480a19b0f9 | ||
|
|
fc9375aa07 | ||
|
|
6f3917fe92 | ||
|
|
3a55f625d4 | ||
|
|
75c0b485bf | ||
|
|
1569b8dc76 | ||
|
|
2105300972 | ||
|
|
dff5410a59 | ||
|
|
7e6f626dad | ||
|
|
53cd8f0df6 | ||
|
|
042abf65dc | ||
|
|
b4e83001d9 | ||
|
|
f2d7ce8473 | ||
|
|
1cb58fb4e2 | ||
|
|
7cc950aba4 | ||
|
|
aaa6591beb | ||
|
|
e04b266661 | ||
|
|
8cd4f472d8 | ||
|
|
a313ca1547 | ||
|
|
111d388863 | ||
|
|
3a3d1c00fa | ||
|
|
950c429a62 | ||
|
|
f6ce454471 | ||
|
|
3f59d1ed48 | ||
|
|
c7d6b3de23 | ||
|
|
eb44b4bfd0 | ||
|
|
2717585e68 | ||
|
|
87c4d42222 | ||
|
|
ad5d26a7bb | ||
|
|
76d2669d8d | ||
|
|
b99b5038e0 | ||
|
|
1c72b04048 | ||
|
|
fab88871e2 | ||
|
|
a0bf412b4d | ||
|
|
4f11c4d5b4 | ||
|
|
213718b009 | ||
|
|
1c67f14d78 | ||
|
|
8c8eb86f41 | ||
|
|
0ae1b4239e | ||
|
|
76d2ac758c | ||
|
|
20938c7217 | ||
|
|
ca5e948ace | ||
|
|
e2c7e5cff2 | ||
|
|
d4fe85375a | ||
|
|
3580fa4066 | ||
|
|
10a73fe40f | ||
|
|
34cf3ab0f9 | ||
|
|
fd45f4b2e3 | ||
|
|
5c917dabab | ||
|
|
2186e1e407 | ||
|
|
711c5de2b0 | ||
|
|
687ba1e391 | ||
|
|
8dea6f1761 | ||
|
|
b4682bfef6 | ||
|
|
b685281d74 | ||
|
|
b8b4a1c7cd | ||
|
|
11dbf11014 | ||
|
|
39bd1bac06 | ||
|
|
afea65c2d2 | ||
|
|
1835b0468f | ||
|
|
b80b604636 | ||
|
|
6048c2d97c | ||
|
|
2e7bb166b1 | ||
|
|
39a1aa5c7f | ||
|
|
174eab0192 | ||
|
|
5d62ec0ed9 | ||
|
|
17524d0ee0 | ||
|
|
7799bf28ae | ||
|
|
55be6c0ef5 | ||
|
|
5dc4afc1dd | ||
|
|
f4e769a74d | ||
|
|
651d8481b7 | ||
|
|
acfe105b9d | ||
|
|
a64ea13e8e | ||
|
|
1f8197327f | ||
|
|
8021488ef4 | ||
|
|
182b2f8a2a | ||
|
|
a8c05a35c2 | ||
|
|
945aea9961 | ||
|
|
4aef3f0a67 | ||
|
|
60073714ba | ||
|
|
4f184db3c9 | ||
|
|
57d84f68a3 | ||
|
|
49daadd25d | ||
|
|
b2b1e177cb | ||
|
|
90aee8e007 | ||
|
|
d74f6bc77a | ||
|
|
dd203a2716 | ||
|
|
dcf5577aae | ||
|
|
c39822ae08 | ||
|
|
4af86ff3e0 | ||
|
|
1a8417b12b | ||
|
|
65461225ef | ||
|
|
7b31cc2b6b | ||
|
|
aa6f09b098 | ||
|
|
944ce44a4a | ||
|
|
6fe7eb5aae | ||
|
|
948acae8c2 | ||
|
|
ef4e85d6db | ||
|
|
3611a815e6 | ||
|
|
1d14197790 | ||
|
|
6bac3c95bf | ||
|
|
9b1dd57135 | ||
|
|
4be1a310c2 | ||
|
|
66d3bbed38 | ||
|
|
d0be5e20fd | ||
|
|
dd0810c4af | ||
|
|
04ee8eac9b | ||
|
|
c58cba39fb | ||
|
|
0c79f00b00 | ||
|
|
144a7c7f34 | ||
|
|
392e594c10 | ||
|
|
0026eacf79 | ||
|
|
0a3a73c18f | ||
|
|
02ec8e9585 | ||
|
|
6f4b0045e4 | ||
|
|
78eb3aaf13 | ||
|
|
8987f91c92 | ||
|
|
d61d8df477 | ||
|
|
73aded4302 | ||
|
|
1241f406b1 | ||
|
|
67a54b3117 | ||
|
|
ce56a02f94 | ||
|
|
7773669d2b | ||
|
|
7c923b7259 | ||
|
|
8650896cc9 | ||
|
|
870df9d3e6 | ||
|
|
6a99268219 | ||
|
|
bc8f592891 | ||
|
|
7e34fba076 | ||
|
|
9d2db14272 | ||
|
|
5e9a9188c0 | ||
|
|
79ad7f65bd | ||
|
|
980122193f | ||
|
|
a0eb01aacd | ||
|
|
28f8027abb | ||
|
|
bd74bf6581 | ||
|
|
3f5728e249 | ||
|
|
c58f844300 | ||
|
|
75bbf4fb27 | ||
|
|
7e80cef519 | ||
|
|
32dff6b180 | ||
|
|
10235641e3 | ||
|
|
13887c99a2 | ||
|
|
47aef92a92 | ||
|
|
37e02efd95 | ||
|
|
ad767b0c5c | ||
|
|
79c77f5d7d | ||
|
|
6f71be809b | ||
|
|
1f1406f1b6 | ||
|
|
e17a767f17 | ||
|
|
255c25e276 | ||
|
|
6103cc7f60 | ||
|
|
d10c3129c5 | ||
|
|
302c47c0dd | ||
|
|
c59990d92d | ||
|
|
04739de18f | ||
|
|
9d303299bd | ||
|
|
e2b76dfd33 | ||
|
|
0d768aac6e | ||
|
|
581214ad63 | ||
|
|
ae0c3a9e84 | ||
|
|
e5718dce6d | ||
|
|
a687a82cd4 | ||
|
|
fd39dbdbdf | ||
|
|
57c7aac4e4 | ||
|
|
4873e3fb7e | ||
|
|
81b9122470 | ||
|
|
8a6654cd07 | ||
|
|
b5e7257841 | ||
|
|
290414e7e8 | ||
|
|
3bf1cb81d3 | ||
|
|
fc1d2c4293 | ||
|
|
c3b18bdf7f | ||
|
|
e7445e169c | ||
|
|
0bd2eca070 | ||
|
|
a0f626b552 | ||
|
|
4b35f5cb99 | ||
|
|
b3edd3f4db | ||
|
|
8556cb41ce | ||
|
|
5be5b3876a | ||
|
|
93e81bfc7d | ||
|
|
444a2ba10d | ||
|
|
ede8d0df8d | ||
|
|
51239f4b31 | ||
|
|
575df562d6 | ||
|
|
350fd5e3fe | ||
|
|
1fd9d08540 | ||
|
|
5fa4be9335 | ||
|
|
179626d555 | ||
|
|
ebf50865b5 | ||
|
|
a47cb98c41 | ||
|
|
173bd93c7c | ||
|
|
3ebc5b3320 | ||
|
|
8f736dbf07 | ||
|
|
cd445fdb26 | ||
|
|
95c6067dc3 | ||
|
|
37c0bcf369 | ||
|
|
94d0c97acd | ||
|
|
e90c034fec | ||
|
|
bc0c3d88fc | ||
|
|
5875d88002 | ||
|
|
8c6b632718 | ||
|
|
6d5a450ffb | ||
|
|
7813de1222 | ||
|
|
2a8353a00b | ||
|
|
e06e691a0a | ||
|
|
6aa085b830 | ||
|
|
3f07f0216e | ||
|
|
f7840d62c2 | ||
|
|
8b35361faf | ||
|
|
1d3d8206c3 | ||
|
|
b36b49ac23 | ||
|
|
6da8af7ca4 | ||
|
|
b6b53a6dca | ||
|
|
89fdae86ce | ||
|
|
90191f725a | ||
|
|
d9a3fa7d4a | ||
|
|
899570337e | ||
|
|
997f505457 | ||
|
|
f76defd390 | ||
|
|
8e5e54f566 | ||
|
|
f0298536eb | ||
|
|
1f94f1f7af | ||
|
|
1bef00445b | ||
|
|
53bfe4afa0 | ||
|
|
4e1e44fbd1 | ||
|
|
2bfaa8b1e6 | ||
|
|
e5e2c50ed3 | ||
|
|
4446f17f65 | ||
|
|
cc3dae7a39 | ||
|
|
ba4b700e13 | ||
|
|
f6e937b978 | ||
|
|
7db609b00f | ||
|
|
843cafd8bf | ||
|
|
a339457c06 | ||
|
|
5f03e110eb | ||
|
|
f08aad23a7 | ||
|
|
bb6c2d081d | ||
|
|
7fdc16a80d | ||
|
|
62dc8b32f9 | ||
|
|
252cfe1450 | ||
|
|
31af44d283 | ||
|
|
eb37433d81 | ||
|
|
f34efdb791 | ||
|
|
15309f9aea | ||
|
|
51c1b16b5b | ||
|
|
1cb31fd3b7 | ||
|
|
ffce96cf3e | ||
|
|
ec0ad8b907 | ||
|
|
84a789b263 | ||
|
|
1d09b617f2 | ||
|
|
c7a138b06c | ||
|
|
889c6617d9 | ||
|
|
b786cbe83a | ||
|
|
6348ac89df | ||
|
|
fdfdec6600 | ||
|
|
2efb4e7a5a | ||
|
|
df4b668117 | ||
|
|
354a5d5491 | ||
|
|
168287b27b | ||
|
|
a2c9f58a8a | ||
|
|
f8cf03d68c | ||
|
|
af06383701 | ||
|
|
f67a1b6e65 | ||
|
|
9fc21bcbf2 | ||
|
|
f393100d5d | ||
|
|
0e10753e46 | ||
|
|
d16e03fbaa | ||
|
|
97452e19d9 | ||
|
|
cf02a0719a | ||
|
|
1d2d956629 | ||
|
|
1f31ee5ebe | ||
|
|
a41043f2e6 | ||
|
|
893ea746a0 | ||
|
|
e8c6ba5068 | ||
|
|
5fd3c951d4 | ||
|
|
fcb2956ae6 | ||
|
|
e74d70233d | ||
|
|
f55a34fd3f | ||
|
|
6794db4fcb | ||
|
|
c68a55ca72 | ||
|
|
ea9cd17c14 | ||
|
|
ae5e78a487 | ||
|
|
9934c17322 | ||
|
|
13e9c107fe | ||
|
|
9d427a5e57 | ||
|
|
c7714bbf34 | ||
|
|
2a1871bba6 | ||
|
|
b5b7c7910e | ||
|
|
b278a92285 | ||
|
|
d98142efca | ||
|
|
080a72f208 | ||
|
|
bac3da12da | ||
|
|
e75678b6d7 | ||
|
|
1e67ca8ec5 | ||
|
|
7845cba0a5 | ||
|
|
952a024fed | ||
|
|
dd8f9f86f6 | ||
|
|
ae1e6b72b7 | ||
|
|
3799cbeb24 | ||
|
|
7b9a47298c | ||
|
|
81b7a57864 | ||
|
|
ab99393c07 | ||
|
|
e5cc256041 | ||
|
|
89ca94ab24 | ||
|
|
af1823d47c | ||
|
|
b57d6410f6 | ||
|
|
c710b6679b | ||
|
|
c33a9ce18c | ||
|
|
ffcb7b2209 | ||
|
|
610f1d2177 | ||
|
|
9d95cd55a8 | ||
|
|
ce983d73f0 | ||
|
|
ba2fb8c9a3 | ||
|
|
a0ea7297c5 | ||
|
|
056268edf2 | ||
|
|
fba780d6a2 | ||
|
|
fa57d4b7da | ||
|
|
3982efa098 | ||
|
|
8339bb3118 | ||
|
|
bae47d3e6b | ||
|
|
0ff899dae3 | ||
|
|
e9fa3a7393 | ||
|
|
914fb084ef | ||
|
|
8483163895 | ||
|
|
b3d215831a | ||
|
|
b4b1f11f40 | ||
|
|
ffd5158a93 | ||
|
|
4dcd8377a2 | ||
|
|
523efa416f | ||
|
|
b63dc92e2c | ||
|
|
dc66e8cf6b | ||
|
|
a4a7461cef | ||
|
|
dcd7847dc0 | ||
|
|
21b49306ab | ||
|
|
e0ba395d37 | ||
|
|
a3f247c258 | ||
|
|
0102872d87 | ||
|
|
2d7f5ea8a3 | ||
|
|
5e42ae950c | ||
|
|
ec686f7a39 | ||
|
|
311810fa82 | ||
|
|
00bf1284d3 | ||
|
|
ce3fe65457 | ||
|
|
36e0c0ab4e | ||
|
|
27f926e7ec | ||
|
|
dad730f294 | ||
|
|
6950f05d11 | ||
|
|
5b6165c48d | ||
|
|
b61b3c9dd2 | ||
|
|
0b565e9639 | ||
|
|
9df83bc5a2 | ||
|
|
79198b18b7 | ||
|
|
f57fd54176 | ||
|
|
c1013989b4 | ||
|
|
922c85fe9d | ||
|
|
e16b369f6e | ||
|
|
c3a60b8df2 | ||
|
|
e97fb4044e | ||
|
|
3a0dc7faba | ||
|
|
673abf4b97 | ||
|
|
5613a35972 | ||
|
|
51fe7aaaf3 | ||
|
|
4055274204 | ||
|
|
404e49fdc6 | ||
|
|
1d6ee7dbcc | ||
|
|
f6fabc5f4f | ||
|
|
6b0b29a9b7 | ||
|
|
037179fa88 | ||
|
|
fada3a7ffb | ||
|
|
634f51e3fc | ||
|
|
44259ea529 | ||
|
|
e6f14832db | ||
|
|
0e23b0242c | ||
|
|
dc474a8946 | ||
|
|
4d7185f6ab | ||
|
|
25ecc59009 | ||
|
|
cb9fc05d6d | ||
|
|
2efb400a13 | ||
|
|
1f79388ddd | ||
|
|
f43641f86f | ||
|
|
121ac2eb29 | ||
|
|
4a8e88dcb2 | ||
|
|
90b29c4ccf | ||
|
|
f2cb073aad | ||
|
|
4025289290 | ||
|
|
60cb0dfc7f | ||
|
|
cf78f2a288 | ||
|
|
0ea15c97a0 | ||
|
|
22ad451907 | ||
|
|
5d3aa53748 | ||
|
|
9360ba426a | ||
|
|
0249204303 | ||
|
|
bb017458ff | ||
|
|
eb421583b4 | ||
|
|
bc2ae1075b | ||
|
|
24874e5369 | ||
|
|
6f9957e82b | ||
|
|
2779a538bb | ||
|
|
6b7bf0141c | ||
|
|
03eb18bb32 | ||
|
|
fcc763adaf | ||
|
|
a3c89a8f95 | ||
|
|
388e6936ea | ||
|
|
b6d955746f | ||
|
|
2f4211edf2 | ||
|
|
086b4fd4f6 | ||
|
|
8f659478cd | ||
|
|
ec492d3fa5 | ||
|
|
920e8d35a9 | ||
|
|
55d56d9138 | ||
|
|
65250cbe30 | ||
|
|
9a626dd7ed | ||
|
|
e3aca9211d | ||
|
|
8bb12cbd35 | ||
|
|
9b69cc5a8f | ||
|
|
b31ca18cfc | ||
|
|
181f9bbc08 | ||
|
|
35e973d387 | ||
|
|
87e05257b6 | ||
|
|
49e49d057b | ||
|
|
98e745a0a8 | ||
|
|
92f822d4ee | ||
|
|
f0b3d62594 | ||
|
|
5aac8b4893 | ||
|
|
532348681e | ||
|
|
87f3e2f00f | ||
|
|
6b44820108 | ||
|
|
bcd75d8518 | ||
|
|
89cc24a863 | ||
|
|
510aa9b421 | ||
|
|
114105815d | ||
|
|
1870261762 | ||
|
|
810b3c6cd6 | ||
|
|
f9434d2cf0 | ||
|
|
68f26a1ba6 | ||
|
|
b67fa6ddf6 | ||
|
|
0a2881674e | ||
|
|
7e706369b4 | ||
|
|
29c8822d90 | ||
|
|
19156cdd3b | ||
|
|
9aaaadffaa | ||
|
|
78aecfebaf | ||
|
|
65641d1006 | ||
|
|
49ca2d2d76 | ||
|
|
63cd4af408 | ||
|
|
704107c3dd | ||
|
|
9d1d0ef3f3 | ||
|
|
b6168b7ccc | ||
|
|
51706e5ac1 | ||
|
|
614e9acfca | ||
|
|
52d9a2216c | ||
|
|
42b653b197 | ||
|
|
5622c9dd73 | ||
|
|
a9e7674933 | ||
|
|
ea014f7a77 | ||
|
|
79cf1353b9 | ||
|
|
1922be9074 | ||
|
|
b0da38c278 | ||
|
|
38fe16b5f2 | ||
|
|
f866a5fd54 | ||
|
|
616a8795ea | ||
|
|
47f983f430 | ||
|
|
b200237c7d | ||
|
|
a22447a555 | ||
|
|
a743e6b1c7 | ||
|
|
2456ff26ed | ||
|
|
651fa124c5 | ||
|
|
f0c1f856f2 | ||
|
|
86b716bc5b | ||
|
|
4fe66e5800 | ||
|
|
3d1425f086 | ||
|
|
abf6b6c228 | ||
|
|
a664311f0f | ||
|
|
9694886daa | ||
|
|
6d0833ece5 | ||
|
|
846c64f4d1 | ||
|
|
e9380882f2 | ||
|
|
c60f4436f0 | ||
|
|
bf465e0029 | ||
|
|
ed31825a8d | ||
|
|
0c8efe4d02 | ||
|
|
ec9c83fa2b | ||
|
|
a4da45e3b2 | ||
|
|
4f79e9eeca | ||
|
|
4d44b5fd55 | ||
|
|
dbc367ba2d | ||
|
|
a57636189a | ||
|
|
57c13137e4 | ||
|
|
9ccc51df43 | ||
|
|
840dd9e1f8 | ||
|
|
6bb9dc6b73 | ||
|
|
103187750e | ||
|
|
a5f2f6140d | ||
|
|
c8a8c0ef89 | ||
|
|
602ea9f0e1 | ||
|
|
617e5a46a1 | ||
|
|
a2d37f12fb | ||
|
|
782ce950b8 | ||
|
|
0dad7f150b | ||
|
|
f7c59f914c | ||
|
|
aa4ef06748 | ||
|
|
6fb36e34b6 | ||
|
|
1f93f56670 | ||
|
|
d8cb3f5852 | ||
|
|
6db4bc01a6 | ||
|
|
a4feb28898 | ||
|
|
e792779dd8 | ||
|
|
a6e0c08fdf | ||
|
|
22d80a3b3b | ||
|
|
04f95191f1 | ||
|
|
21fb54246e | ||
|
|
94d60e15b3 | ||
|
|
bda84069b4 | ||
|
|
d9b5003fa1 | ||
|
|
533d93c758 | ||
|
|
ba7c982605 | ||
|
|
25d358cf01 | ||
|
|
4000fcc3d7 | ||
|
|
fcfc6c3fe8 | ||
|
|
76fb5060c1 | ||
|
|
1bf6364b97 | ||
|
|
40764534a2 | ||
|
|
cb47e01823 | ||
|
|
a939945148 | ||
|
|
b4466ec981 | ||
|
|
f7d5a0a017 | ||
|
|
6e598f8527 | ||
|
|
0cadaefc09 | ||
|
|
2141ca5273 | ||
|
|
108255cbbb | ||
|
|
3fec37a9c1 | ||
|
|
c3be00f0ec | ||
|
|
6ea679eb07 | ||
|
|
51d28af8fa | ||
|
|
5661fbbab9 | ||
|
|
6e021c8272 | ||
|
|
00e79dfb22 | ||
|
|
4cdcf00dca | ||
|
|
723510f9aa | ||
|
|
9686f8b34d | ||
|
|
4c47c76ecf | ||
|
|
4045339e4c | ||
|
|
a9f74cbf6e | ||
|
|
371a422567 | ||
|
|
7f60924390 | ||
|
|
dda39a0f05 | ||
|
|
4d854e66b8 | ||
|
|
57c202e015 | ||
|
|
bd79e20c66 | ||
|
|
35b2c6ece4 | ||
|
|
e382e6872c | ||
|
|
4e1a2555be | ||
|
|
7ec3174a33 | ||
|
|
c9e89f49b0 | ||
|
|
aa6cd74c03 | ||
|
|
ea10fa4a79 | ||
|
|
692e93a91f | ||
|
|
bee287927c | ||
|
|
0caf75f839 | ||
|
|
d7510efc16 | ||
|
|
aa6ee44a7a | ||
|
|
7c90c7c497 | ||
|
|
2f083acbed | ||
|
|
38c1ddb52a | ||
|
|
46b4b0b8d5 | ||
|
|
d0e808f44c | ||
|
|
e454fef40e | ||
|
|
1814d8b47a | ||
|
|
803baf0ba6 | ||
|
|
5edcf6ddf6 | ||
|
|
186e9e331b | ||
|
|
cceffe3d98 | ||
|
|
6d0821d2b5 | ||
|
|
e714de6365 | ||
|
|
c0dda0ea14 | ||
|
|
5652882134 | ||
|
|
4419afb9c9 | ||
|
|
29fc853271 | ||
|
|
d61a51e81e | ||
|
|
3750927a06 | ||
|
|
71b0c76861 | ||
|
|
e4eb69b8a1 | ||
|
|
219f86ee06 | ||
|
|
c77d5f99f9 | ||
|
|
839c6a1845 | ||
|
|
6a51c44ec2 | ||
|
|
a7dd263566 | ||
|
|
4b3f967e49 | ||
|
|
74fbcce5ae | ||
|
|
4781d28b4b | ||
|
|
f5534cb7c7 | ||
|
|
62b7f86dae | ||
|
|
5613ed6dfb | ||
|
|
8980ead7ea | ||
|
|
e4d7178a3c | ||
|
|
1fcc4162d1 | ||
|
|
40d5d31c83 | ||
|
|
023e6c2953 | ||
|
|
d2b1158e6c | ||
|
|
8318dcb74b | ||
|
|
b28d77b3e3 | ||
|
|
245b5473a0 | ||
|
|
457a0a69bf | ||
|
|
a24f9b204c | ||
|
|
39203a65e0 | ||
|
|
ba7fb23ddd | ||
|
|
519e4224b1 | ||
|
|
95565e0f4f | ||
|
|
320f25cb04 | ||
|
|
3527ccdf2e | ||
|
|
03efecf0d3 | ||
|
|
94f2903584 | ||
|
|
e87320d5f2 | ||
|
|
7ebc94c2a6 | ||
|
|
4eda045b15 | ||
|
|
2ba1675c75 | ||
|
|
6f315356b6 | ||
|
|
4765010083 | ||
|
|
a033e3b9ef | ||
|
|
b9d6ba243c | ||
|
|
84ee4249c9 | ||
|
|
ee3b405316 | ||
|
|
b8fe22c9cd | ||
|
|
220b57add4 | ||
|
|
7774243d11 | ||
|
|
a3909f5486 | ||
|
|
3efaf477c4 | ||
|
|
b70bca6b69 | ||
|
|
87349c317f | ||
|
|
f303a076bc | ||
|
|
113b18ee08 | ||
|
|
fa360aa836 | ||
|
|
ce0fa4c438 | ||
|
|
6f73e62ecd | ||
|
|
7171d29985 | ||
|
|
358786774c | ||
|
|
cc38032bee | ||
|
|
f1dbed072c | ||
|
|
28d7df75ac | ||
|
|
c000b352ad | ||
|
|
841d634230 | ||
|
|
369ad1706b | ||
|
|
d683970d40 | ||
|
|
a25258190b | ||
|
|
04ffca0b6b | ||
|
|
358e72ec0d | ||
|
|
d2ad2e668d | ||
|
|
6c3964d2f5 | ||
|
|
cbcf75a57c | ||
|
|
ab0253fecd | ||
|
|
e2da5d2f0a | ||
|
|
753cff7c8a | ||
|
|
42a2a6c2b5 | ||
|
|
c98cd65802 | ||
|
|
53d1d04ec5 | ||
|
|
88a3a87015 | ||
|
|
6f1f5b67e0 | ||
|
|
2bd84f6f0e | ||
|
|
825685f82f | ||
|
|
1074237311 | ||
|
|
d637ae85dd | ||
|
|
cb3ffd0b4a | ||
|
|
93246a0730 | ||
|
|
51345a1cc8 | ||
|
|
ec421715ed | ||
|
|
b9b3cd652e | ||
|
|
1acf3b3837 | ||
|
|
c9411bfb83 | ||
|
|
835b955913 | ||
|
|
0e9b94d533 | ||
|
|
bc3d946fdf | ||
|
|
567f63ae34 | ||
|
|
2754d7c3b9 | ||
|
|
5acfdd6af4 | ||
|
|
cd4fe5b7d0 | ||
|
|
e663f99982 | ||
|
|
646b80ca53 | ||
|
|
1e930763d2 | ||
|
|
a74400d92c | ||
|
|
a7a76c8fc7 | ||
|
|
fc0c371761 | ||
|
|
9e873f50d3 | ||
|
|
02d20ff7eb | ||
|
|
d1810f241c | ||
|
|
1db3785307 | ||
|
|
952338b33e | ||
|
|
b9d3147d3b | ||
|
|
f8fa4f6f5e | ||
|
|
3e3b42cdf5 | ||
|
|
f86b435228 | ||
|
|
deaccd2c42 | ||
|
|
3222985e43 | ||
|
|
1cfc96bcf7 | ||
|
|
3409e2d73f | ||
|
|
ae512811db | ||
|
|
a211ac2ec5 | ||
|
|
a112d37025 | ||
|
|
9cddf136d7 | ||
|
|
767868ddbf | ||
|
|
1410a22bb2 | ||
|
|
55f2020926 | ||
|
|
a820bdaeb9 | ||
|
|
df429932ca | ||
|
|
d22644aada | ||
|
|
def0532ffc | ||
|
|
04b91129a5 | ||
|
|
5f0b82925e | ||
|
|
89cdcba573 | ||
|
|
6c2b0378fe | ||
|
|
2948eb296d | ||
|
|
a55345f991 | ||
|
|
c0bd5688b5 | ||
|
|
6b4ad08259 | ||
|
|
ed322043d0 | ||
|
|
723b511fe1 | ||
|
|
33e8928f53 | ||
|
|
de410d13ef | ||
|
|
7d5695d774 | ||
|
|
121a7bf4eb | ||
|
|
91bfb6fb7e | ||
|
|
dcb755acc6 | ||
|
|
79036210c1 | ||
|
|
8ff94c6344 | ||
|
|
1b889688a5 | ||
|
|
de64e70458 | ||
|
|
652cea57e8 | ||
|
|
8f62e0fb31 | ||
|
|
4511edb849 | ||
|
|
f517267c0c | ||
|
|
93b6829e83 | ||
|
|
8eede4bb8a | ||
|
+1 |
f00727c57e | ||
|
|
0767902699 | ||
|
|
0cf731589a | ||
|
|
9b1798d643 | ||
|
|
c467df95a2 | ||
|
|
5a6ab97be6 | ||
|
|
515e12ca2d | ||
|
|
37b9ca1f90 | ||
|
|
7819df10a4 | ||
|
|
f225858235 | ||
|
|
058455e4ca | ||
|
|
bb3b7e6979 | ||
|
|
2aad131e74 | ||
|
|
894631f0d0 | ||
|
|
f49d18df89 | ||
|
|
7cc6cb5013 | ||
|
|
72f13f8bbb | ||
|
|
9f00461456 | ||
|
|
bb1beda67b | ||
|
|
aaaeb4e1e6 | ||
|
|
2d3a1385f1 | ||
|
|
6ea42025a4 | ||
|
|
310f52293b | ||
|
|
c37b890c8b | ||
|
|
f0388e2f38 | ||
|
|
102c8bbc54 | ||
|
|
f4f275519f | ||
|
|
1a7288aa05 | ||
|
|
743346a5da | ||
|
|
e5d988df85 | ||
|
|
7afae7f465 | ||
|
|
3d13b11514 | ||
|
|
34c794dc51 | ||
|
|
2565497897 | ||
|
|
df96f8a0fa | ||
|
|
a2b0ff0644 | ||
|
|
43f37b1b5e | ||
|
|
20df25d3a5 | ||
|
|
2526fe063a | ||
|
|
8e69d981fa | ||
|
|
4519857817 | ||
|
|
ce30016218 | ||
|
|
a6ce734fd0 | ||
|
|
7a3d0c4e98 | ||
|
|
0a4eb8f3bb | ||
|
|
5538d24d72 | ||
|
|
a866e366b2 | ||
|
|
8de7e356fa | ||
|
|
1d5e5a57e9 | ||
|
|
b506626824 | ||
|
|
0a6e7435b3 | ||
|
|
9421f22372 | ||
|
|
f63dbeafde | ||
|
|
fc56c728c0 | ||
|
|
9b9f046f41 | ||
|
|
7f3d3591de | ||
|
|
a501c45918 | ||
|
|
ca2610904b | ||
|
|
b00875f86d | ||
|
|
5f2ee83ed4 | ||
|
|
1d9b399427 | ||
|
|
f12d33f04e | ||
|
|
9be4e07a3e | ||
|
|
636ae0cd87 | ||
|
|
fcb2e81590 | ||
|
|
e5a8ee849f | ||
|
|
7b4d44f573 | ||
|
|
ab984a0711 | ||
|
|
5e2a3bc0e2 | ||
|
|
edda0db18b | ||
|
|
09f1f88f58 | ||
|
|
f070081825 | ||
|
|
b386a8f527 | ||
|
|
e494f2894e | ||
|
|
142695eb00 | ||
|
|
d26a9e90c8 | ||
|
|
3b9106c7d1 | ||
|
|
fd69140d80 | ||
|
|
8eb8e44ac3 | ||
|
|
84609dc046 | ||
|
|
88cdd22076 | ||
|
|
b27e11cce6 | ||
|
|
60394c5b98 | ||
|
|
28d07dc5ab | ||
|
|
06f96dd655 | ||
|
|
2a4a115432 | ||
|
|
a3781ff3be | ||
|
|
b9023b5dc3 | ||
|
|
7bee99714a | ||
|
|
608f004a2c | ||
|
|
00701267c8 | ||
|
|
cb25c0cf31 | ||
|
|
a6e82d90ce | ||
|
|
404167841d | ||
|
|
c62252e19f | ||
|
|
9b9de82706 | ||
|
|
6cfa2f7f31 | ||
|
|
46f4fdaae3 | ||
|
|
0680485095 | ||
|
|
0a04c3fe22 | ||
|
|
e616498ed7 | ||
|
|
a06179a018 | ||
|
|
1be2e5f311 | ||
|
|
072a8317b2 | ||
|
|
cf7c6c7483 | ||
|
|
db2aa1803d | ||
|
|
13c80a5eb3 | ||
|
|
3bd69f2e56 | ||
|
|
fa5824e4c8 | ||
|
|
cafef9ce9b | ||
|
|
edacfdf462 | ||
|
|
eff617b8f8 | ||
|
|
1a04e96ab7 | ||
|
|
61312fdb59 | ||
|
|
51acc802b8 | ||
|
|
cb6c57e0f8 | ||
|
|
786ddf53c6 | ||
|
|
53ae5c95b7 | ||
|
|
597dcfffb9 | ||
|
|
742968e078 | ||
|
|
5395ae37bd | ||
|
|
8927091a08 | ||
|
|
e0711af5d5 | ||
|
|
5bcfb12a99 | ||
|
|
d4a957849c | ||
|
|
54b2e9d973 | ||
|
|
e2f0efd1af | ||
|
|
1004374a83 | ||
|
|
a392d475c2 | ||
|
|
5a34bf0425 | ||
|
|
7e21cb8181 | ||
|
|
3af5e77132 | ||
|
|
fb5b173c6a | ||
|
|
2477f1f6a9 | ||
|
|
ce95b5d653 | ||
|
|
81bb82f521 | ||
|
|
939bb7828f | ||
|
|
336ea9dfeb | ||
|
|
88bbead13b | ||
|
|
30046e0410 | ||
|
|
6b7650d81b | ||
|
|
30fdfb1aa1 | ||
|
|
73f7736eb9 | ||
|
|
a35cfe93f9 | ||
|
|
e150ffd272 | ||
|
|
938a84fc39 | ||
|
|
b1b88cd316 | ||
|
|
cd9d6d6998 | ||
|
|
b6be7cd0ae | ||
|
|
8e80d4e158 | ||
|
|
209e5f8580 | ||
|
|
eeec611b9d | ||
|
|
9f74858760 | ||
|
|
e82f7e6bb6 | ||
|
|
85d0040f57 | ||
|
|
c44f891d99 | ||
|
|
fe75eaf09a | ||
|
|
6fde26d7f8 | ||
|
|
d69981b611 | ||
|
|
1bb3677651 | ||
|
|
ab1b312064 | ||
|
|
5e23d28ad2 | ||
|
|
3709150bc1 | ||
|
|
50c2c59c4e | ||
|
|
ad74b673fa | ||
|
|
2ea6aee343 | ||
|
|
86c6308faf | ||
|
|
76617ddf43 | ||
|
|
eb4db794eb | ||
|
|
e5542cfdc3 | ||
|
|
9746d73ade | ||
|
|
08ac057fda | ||
|
|
ed75b0e54b | ||
|
|
c2f24e1567 | ||
|
|
c94922514a | ||
|
|
775002a357 | ||
|
|
ac3aaa248b | ||
|
|
19ddbeff9e | ||
|
|
79ffcd1536 | ||
|
|
3ad3fbc19a | ||
|
|
3d9ecc4e08 | ||
|
|
3e42518b34 | ||
|
|
b242f1eb15 | ||
|
|
ea7b961926 | ||
|
|
6316a50dbd | ||
|
|
b03d39b5ce | ||
|
|
1b38f2810e | ||
|
|
400717174e | ||
|
|
5e14504f20 | ||
|
|
08fc33ca03 | ||
|
|
55f3f280cb | ||
|
|
efdcaa25ee | ||
|
|
b34ae4fb3c | ||
|
|
49d15f6345 | ||
|
|
337557044e | ||
|
|
486e521105 | ||
|
|
9f90b4c324 | ||
|
|
f367f107cf | ||
|
|
33a590bca6 | ||
|
|
6ab13521b7 | ||
|
|
4106da712c | ||
|
|
edde7264c6 | ||
|
|
daddcf6742 | ||
|
|
83995d7e80 | ||
|
|
1dd52bed49 | ||
|
|
bdfad1c838 | ||
|
|
9298f593b7 |
No files matched your search
@@ -0,0 +1,207 @@
|
||||
<!DOCTYPE module PUBLIC
|
||||
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
|
||||
"https://checkstyle.org/dtds/configuration_1_3.dtd">
|
||||
<module name="Checker">
|
||||
<module name="SuppressionFilter">
|
||||
<property name="file" value="${config_loc}/suppressions.xml"/>
|
||||
<property name="optional" value="false"/>
|
||||
</module>
|
||||
|
||||
<!--Single Suppression Filters-->
|
||||
<module name="io.papermc.checkstyle.filters.BetterSuppressionSingleFilter">
|
||||
<!--Suppresses warnings except for common TYPE_USE that should be on the same line-->
|
||||
<property name="checks" value="AnnotationOnSameLine"/>
|
||||
<property name="messageKey" value="annotation\.same\.line"/>
|
||||
<property name="arguments" value="^(?!(${type_use_annotations}))"/>
|
||||
</module>
|
||||
<module name="SuppressWarningsFilter"/>
|
||||
|
||||
<!--Javadoc Comments-->
|
||||
<module name="JavadocPackage"/>
|
||||
<!--Misc-->
|
||||
<module name="NewlineAtEndOfFile"/>
|
||||
<!--Whitespace-->
|
||||
<module name="FileTabCharacter"/>
|
||||
|
||||
<module name="TreeWalker">
|
||||
<module name="SuppressWarningsHolder"/>
|
||||
<module name="SuppressionXpathFilter">
|
||||
<property name="file" value="${config_loc}/xpath-suppressions.xml"/>
|
||||
<property name="optional" value="false"/>
|
||||
</module>
|
||||
<module name="SuppressionCommentFilter"/>
|
||||
|
||||
<!--Annotations-->
|
||||
<module name="AnnotationOnSameLine">
|
||||
<!--matches all annotations, but most are suppressed in above-->
|
||||
<property name="tokens" value="METHOD_DEF"/>
|
||||
</module>
|
||||
<module name="AnnotationUseStyle"/>
|
||||
<module name="MissingDeprecated"/>
|
||||
|
||||
<!--Block Checks-->
|
||||
<module name="AvoidNestedBlocks"/>
|
||||
<module name="EmptyBlock"/>
|
||||
<module name="LeftCurly"/>
|
||||
<module name="RightCurly"/>
|
||||
|
||||
<!--Class Design-->
|
||||
<module name="FinalClass"/>
|
||||
<module name="HideUtilityClassConstructor"/>
|
||||
<module name="InterfaceIsType"/>
|
||||
<module name="OneTopLevelClass"/>
|
||||
<module name="SealedShouldHavePermitsList"/>
|
||||
|
||||
<!--Coding-->
|
||||
<module name="AvoidDoubleBraceInitialization"/>
|
||||
<module name="AvoidNoArgumentSuperConstructorCall"/>
|
||||
<module name="ConstructorsDeclarationGrouping"/>
|
||||
<module name="CovariantEquals"/>
|
||||
<module name="DeclarationOrder">
|
||||
<property name="ignoreConstructors" value="true"/>
|
||||
</module>
|
||||
<module name="DefaultComesLast"/>
|
||||
<module name="EmptyStatement"/>
|
||||
<module name="EqualsHashCode"/>
|
||||
<module name="FallThrough"/>
|
||||
<!-- Use non-final variables as an identifier of old code for now -->
|
||||
<!--<module name="FinalLocalVariable">
|
||||
<property name="validateEnhancedForLoopVariable" value="true"/>
|
||||
<property name="validateUnnamedVariables" value="true"/>
|
||||
<property name="tokens" value="PARAMETER_DEF,VARIABLE_DEF"/>
|
||||
</module>-->
|
||||
<module name="IllegalToken"/> <!--just labels by default-->
|
||||
<module name="IllegalType"/>
|
||||
<module name="PatternVariableAssignment"/>
|
||||
<module name="RequireThis">
|
||||
<property name="validateOnlyOverlapping" value="false"/>
|
||||
</module>
|
||||
<module name="SimplifyBooleanExpression"/>
|
||||
<module name="SimplifyBooleanReturn"/>
|
||||
<module name="StringLiteralEquality"/>
|
||||
<module name="UnnecessaryNullCheckWithInstanceOf"/>
|
||||
<module name="UnnecessarySemicolonAfterOuterTypeDeclaration"/>
|
||||
<module name="UnnecessarySemicolonAfterTypeMemberDeclaration"/>
|
||||
<module name="UnnecessarySemicolonInEnumeration"/>
|
||||
<module name="UnnecessarySemicolonInTryWithResources"/>
|
||||
<module name="UnusedCatchParameterShouldBeUnnamed"/>
|
||||
<module name="UnusedLocalVariable"/>
|
||||
<module name="WhenShouldBeUsed"/>
|
||||
|
||||
<!--Headers--> <!--N/A-->
|
||||
|
||||
<!--Imports-->
|
||||
<module name="AvoidStarImport"/>
|
||||
<module name="CustomImportOrder">
|
||||
<property name="customImportOrderRules" value="THIRD_PARTY_PACKAGE,STATIC"/>
|
||||
<property name="standardPackageRegExp" value="^$"/>
|
||||
<property name="sortImportsInGroupAlphabetically" value="true"/>
|
||||
</module>
|
||||
<module name="IllegalImport">
|
||||
<property name="regexp" value="true"/>
|
||||
<!--checker-qual nullability-->
|
||||
<property name="illegalClasses" value="org\.checkerframework\.checker\.nullness\.qual\.(Nullable|NonNull|DefaultQualifier|MonotonicNonNull)"/>
|
||||
<!--jetbrains nullability-->
|
||||
<property name="illegalClasses" value="org\.jetbrains\.annotations\.(NotNull|Nullable|NotNullByDefault)"/>
|
||||
<!--javax nullability-->
|
||||
<property name="illegalClasses" value="javax\.annotation\.(Nonnull|Nullable)"/>
|
||||
<message key="import.illegal" value="Illegal nullability annotation - {0}, use JSpecify"/>
|
||||
</module>
|
||||
<module name="RedundantImport"/>
|
||||
<module name="UnusedImports"/>
|
||||
|
||||
<!--Javadoc Comments-->
|
||||
<module name="AtclauseOrder">
|
||||
<property name="tagOrder" value="@param, @return, @throws, @see, @deprecated, @hidden"/>
|
||||
</module>
|
||||
<module name="InvalidJavadocPosition"/>
|
||||
<module name="JavadocBlockTagLocation"/>
|
||||
<module name="JavadocContentLocation"/>
|
||||
<module name="JavadocLeadingAsteriskAlign"/>
|
||||
<module name="JavadocMethod">
|
||||
<!--checks all, but doesn't require. If we have a doc, it should be valid-->
|
||||
<property name="validateThrows" value="true"/>
|
||||
</module>
|
||||
<module name="JavadocMissingLeadingAsterisk"/>
|
||||
<module name="JavadocMissingWhitespaceAfterAsterisk"/>
|
||||
<module name="JavadocStyle"/> <!--checks all, but doesn't require. If we have a doc, it should be valid-->
|
||||
<module name="JavadocTagContinuationIndentation"/>
|
||||
<module name="JavadocType"/> <!--checks all, but doesn't require. If we have a doc, it should be valid-->
|
||||
<module name="NonEmptyAtclauseDescription"/>
|
||||
<module name="RequireEmptyLineBeforeBlockTagGroup"/>
|
||||
|
||||
<!--Metrics--> <!--N/A-->
|
||||
|
||||
<!--Miscellaneous-->
|
||||
<module name="ArrayTypeStyle"/>
|
||||
<module name="AvoidEscapedUnicodeCharacters"/>
|
||||
<module name="CommentsIndentation"/>
|
||||
<!-- Overlaps with the configured FinalLocalVariable, but is more strict -->
|
||||
<!--<module name="FinalParameters">
|
||||
<property name="tokens" value="METHOD_DEF,CTOR_DEF,LITERAL_CATCH,FOR_EACH_CLAUSE,PATTERN_VARIABLE_DEF"/>
|
||||
</module>-->
|
||||
|
||||
<module name="NoCodeInFile"/>
|
||||
<module name="OuterTypeFilename"/>
|
||||
<module name="UpperEll"/>
|
||||
|
||||
<!--Modifiers-->
|
||||
<module name="ModifierOrder"/>
|
||||
<module name="RedundantModifier"/>
|
||||
|
||||
<!--Naming Conventions-->
|
||||
<module name="AbbreviationAsWordInName">
|
||||
<property name="allowedAbbreviations" value="JSON,UUID"/>
|
||||
<property name="ignoreFinal" value="false"/>
|
||||
</module>
|
||||
<module name="ClassTypeParameterName"/>
|
||||
<module name="ConstantName"/>
|
||||
<module name="IllegalIdentifierName"/>
|
||||
<module name="InterfaceTypeParameterName"/>
|
||||
<module name="LambdaParameterName"/>
|
||||
<module name="LocalFinalVariableName"/>
|
||||
<module name="LocalVariableName"/>
|
||||
<module name="MemberName"/>
|
||||
<module name="MethodName"/>
|
||||
<module name="MethodTypeParameterName">
|
||||
<property name="format" value="^[A-Z]+$"/>
|
||||
</module>
|
||||
<module name="PackageName">
|
||||
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
|
||||
</module>
|
||||
<module name="ParameterName"/>
|
||||
<module name="PatternVariableName"/>
|
||||
<module name="RecordComponentName"/>
|
||||
<module name="RecordTypeParameterName"/>
|
||||
<module name="StaticVariableName"/>
|
||||
<module name="TypeName"/>
|
||||
|
||||
<!--Regexp--> <!--N/A-->
|
||||
<!--Size Violations--> <!--N/A-->
|
||||
|
||||
<!--Whitespace-->
|
||||
<module name="EmptyForInitializerPad"/>
|
||||
<module name="EmptyForIteratorPad"/>
|
||||
<module name="EmptyLineSeparator">
|
||||
<property name="allowNoEmptyLineBetweenFields" value="true"/>
|
||||
<property name="tokens" value="IMPORT,STATIC_IMPORT,CLASS_DEF,INTERFACE_DEF,ENUM_DEF,STATIC_INIT,INSTANCE_INIT,METHOD_DEF,CTOR_DEF,VARIABLE_DEF,RECORD_DEF,COMPACT_CTOR_DEF"/>
|
||||
</module>
|
||||
<module name="GenericWhitespace"/>
|
||||
<module name="MethodParamPad"/>
|
||||
<module name="NoLineWrap"/> <!--just imports and packages-->
|
||||
<module name="NoWhitespaceAfter"/>
|
||||
<module name="NoWhitespaceBefore"/>
|
||||
<module name="NoWhitespaceBeforeCaseDefaultColon"/>
|
||||
<module name="ParenPad"/>
|
||||
<module name="SingleSpaceSeparator"/>
|
||||
<module name="TypecastParenPad"/>
|
||||
<module name="WhitespaceAfter"/>
|
||||
<module name="WhitespaceAround"/>
|
||||
|
||||
<!--Custom-->
|
||||
<module name="JavadocAlignParameterDescription"/>
|
||||
<module name="NullabilityAnnotations"/>
|
||||
<module name="RedundantNullability"/>
|
||||
<module name="UnnecessaryFullyQualifiedImport"/>
|
||||
</module>
|
||||
</module>
|
||||
@@ -0,0 +1,7 @@
|
||||
<!DOCTYPE suppressions PUBLIC
|
||||
"-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN"
|
||||
"https://checkstyle.org/dtds/suppressions_1_2.dtd">
|
||||
<suppressions>
|
||||
<suppress checks="MissingJavadoc.*" files="src[\\/]test[\\/]java[^\\/]*[\\/].*"/>
|
||||
<suppress checks="JavadocPackage" files="src[\\/]test[\\/]java[^\\/]*[\\/].*"/>
|
||||
</suppressions>
|
||||
@@ -0,0 +1,10 @@
|
||||
NonNull
|
||||
NotNull
|
||||
Nullable
|
||||
UnknownNullability
|
||||
Unmodifiable
|
||||
UnmodifiableView
|
||||
Range
|
||||
Positive
|
||||
NonNegative
|
||||
IntRange
|
||||
@@ -0,0 +1,17 @@
|
||||
<!DOCTYPE suppressions PUBLIC
|
||||
"-//Checkstyle//DTD SuppressionXpathFilter Experimental Configuration 1.2//EN"
|
||||
"https://checkstyle.org/dtds/suppressions_1_2_xpath_experimental.dtd">
|
||||
<suppressions>
|
||||
<!--ignores all checks for @Deprecated(forRemoval=*) children-->
|
||||
<suppress-xpath checks=".*" query="//*[MODIFIERS/ANNOTATION[(@text = 'Deprecated' or *[@text = 'Deprecated'] and ANNOTATION_MEMBER_VALUE_PAIR/IDENT[@text='forRemoval'])]]/descendant-or-self::node()"/>
|
||||
<!--special case to ignore extra checks outside the root CLASS_DEF if the root CLASS_DEF is marked as deprecated for removal-->
|
||||
<suppress-xpath checks=".*" query="/COMPILATION_UNIT[CLASS_DEF/MODIFIERS/ANNOTATION[IDENT[@text = 'Deprecated'] and ANNOTATION_MEMBER_VALUE_PAIR/IDENT[@text='forRemoval']]]/descendant-or-self::node()"/>
|
||||
<!--ignores MissingJavadoc for ApiStatus.Internal children-->
|
||||
<suppress-xpath checks="MissingJavadoc(Method|Type)" query="//*[MODIFIERS/ANNOTATION/DOT[@text = 'Internal' or *[@text = 'Internal']]]/descendant-or-self::node()"/>
|
||||
|
||||
<!--skip for private classes-->
|
||||
<suppress-xpath checks="FinalClass" query="//CLASS_DEF[MODIFIERS/LITERAL_PRIVATE]"/>
|
||||
|
||||
<!--skip for classes inside of methods-->
|
||||
<suppress-xpath checks="HideUtilityClassConstructor|MissingJavadoc(Method|Type)" query="//CLASS_DEF[ancestor::METHOD_DEF]"/>
|
||||
</suppressions>
|
||||
+31
-14
@@ -1,38 +1,55 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset=utf-8
|
||||
end_of_line=lf
|
||||
insert_final_newline=true
|
||||
indent_style=space
|
||||
indent_size=4
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
ij_any_block_comment_add_space = false
|
||||
ij_any_block_comment_at_first_column = false
|
||||
ij_any_line_comment_at_first_column = false
|
||||
ij_any_line_comment_add_space = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.tiny]
|
||||
indent_style=tab
|
||||
indent_style = tab
|
||||
|
||||
[*.bat]
|
||||
end_of_line=crlf
|
||||
end_of_line = crlf
|
||||
|
||||
[*.yml]
|
||||
indent_size=2
|
||||
[{*.yaml,*.yml}]
|
||||
indent_size = 2
|
||||
|
||||
[*.patch]
|
||||
trim_trailing_whitespace=false
|
||||
[{*.patch,*.md}]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[*.java]
|
||||
ij_continuation_indent_size = 4
|
||||
ij_java_class_count_to_use_import_on_demand = 999999
|
||||
ij_java_insert_inner_class_imports = false
|
||||
ij_java_names_count_to_use_import_on_demand = 999999
|
||||
ij_java_imports_layout = *,|,$*
|
||||
ij_java_imports_layout = *, |, $*
|
||||
ij_java_layout_static_imports_separately = true
|
||||
ij_java_generate_final_locals = true
|
||||
ij_java_generate_final_parameters = true
|
||||
ij_java_method_parameters_new_line_after_left_paren = true
|
||||
ij_java_method_parameters_right_paren_on_new_line = true
|
||||
ij_java_use_fq_class_names = false
|
||||
ij_java_class_names_in_javadoc = 1
|
||||
# javadoc
|
||||
ij_java_doc_add_blank_line_after_description = true
|
||||
ij_java_doc_add_blank_line_after_param_comments = false
|
||||
ij_java_doc_add_blank_line_after_return = false
|
||||
ij_java_doc_add_p_tag_on_empty_lines = true
|
||||
ij_java_doc_align_exception_comments = true
|
||||
ij_java_doc_align_param_comments = true
|
||||
ij_java_doc_do_not_wrap_if_one_line = false
|
||||
ij_java_doc_enable_formatting = true
|
||||
ij_java_doc_enable_leading_asterisks = true
|
||||
ij_java_doc_indent_on_continuation = true
|
||||
ij_java_doc_param_description_on_new_line = false
|
||||
ij_java_doc_use_throws_not_exception_tag = true
|
||||
|
||||
[paper-server/src/minecraft/java/**/*.java]
|
||||
ij_java_use_fq_class_names = true
|
||||
@@ -40,5 +57,5 @@ ij_java_use_fq_class_names = true
|
||||
[paper-server/src/minecraft/resources/data/**/*.json]
|
||||
indent_size = 2
|
||||
|
||||
[paper-api-generator/generated/**/*.java]
|
||||
ij_java_imports_layout = $*,|,*
|
||||
[paper-{server,api}/src/generated/java/**/*.java]
|
||||
ij_java_imports_layout = $*, |, *
|
||||
+13
-2
@@ -1,2 +1,13 @@
|
||||
* @PaperMC/paper-maintainers
|
||||
/.github/CODEOWNERS @PaperMC/core-team
|
||||
# default ownership
|
||||
* @papermc/paper-maintainers
|
||||
|
||||
# tooling
|
||||
/.github/workflows/ @papermc/tooling
|
||||
/gradle/ @papermc/tooling
|
||||
/paper-api/build.gradle.kts @papermc/tooling
|
||||
/paper-server/build.gradle.kts @papermc/tooling
|
||||
/build.gradle.kts @papermc/tooling
|
||||
/gradle.properties @papermc/tooling
|
||||
/settings.gradle.kts @papermc/tooling
|
||||
|
||||
/.github/CODEOWNERS @papermc/leadership-team
|
||||
@@ -5,51 +5,63 @@
|
||||
# of the PR relating to this action.
|
||||
|
||||
name: Build Paper
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
types:
|
||||
- opened
|
||||
- reopened
|
||||
- synchronize
|
||||
- labeled
|
||||
push:
|
||||
branches-ignore:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
build:
|
||||
env:
|
||||
ORG_GRADLE_PROJECT_paperBuildCacheEnabled: true
|
||||
ORG_GRADLE_PROJECT_paperBuildCacheUsername: ${{ secrets.PAPER_BUILD_CACHE_USERNAME }}
|
||||
ORG_GRADLE_PROJECT_paperBuildCachePassword: ${{ secrets.PAPER_BUILD_CACHE_PASSWORD }}
|
||||
ORG_GRADLE_PROJECT_paperBuildCachePush: true
|
||||
|
||||
# The goal of the build workflow is split into multiple requirements.
|
||||
# 1. Run on pushes to same repo.
|
||||
# 2. Run on PR open/reopen/syncs from repos that are not the same (PRs from the same repo are covered by 1)
|
||||
# 3. Run on labeled PRs that have the build-pr-jar flag.
|
||||
# 3. Run on labeled PRs that have the publish-pr flag.
|
||||
if: >
|
||||
(
|
||||
(github.event_name == 'push')
|
||||
|| (github.event_name == 'pull_request' && github.repository != github.event.pull_request.head.repo.full_name && contains(fromJSON('["opened", "reopened", "synchronize"]'), github.event.action))
|
||||
|| (github.event_name == 'pull_request' && github.event.action == 'labeled' && github.event.label.name == 'build-pr-jar')
|
||||
|| (github.event_name == 'pull_request' && github.event.action == 'labeled' && github.event.label.name == 'publish-pr')
|
||||
)
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
java: [21]
|
||||
fail-fast: true
|
||||
steps:
|
||||
- if: ${{ github.event_name == 'push' }}
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
# todo remove me again after the update
|
||||
ref: ${{ github.ref_name }}
|
||||
fetch-depth: 0
|
||||
- if: ${{ github.event_name == 'pull_request' }}
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
- name: JDK ${{ matrix.java }}
|
||||
uses: actions/setup-java@v4
|
||||
- name: JDK 25
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
java-version: ${{ matrix.java }}
|
||||
java-version: 25
|
||||
distribution: 'zulu'
|
||||
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
uses: gradle/actions/setup-gradle@v6
|
||||
with:
|
||||
# Allow cache writes on main and dev branches
|
||||
cache-read-only: ${{ github.ref != 'refs/heads/main' && !startsWith(github.ref, 'refs/heads/dev/') }}
|
||||
|
||||
- name: Configure Build
|
||||
uses: actions/github-script@v7
|
||||
uses: actions/github-script@v9
|
||||
id: determine
|
||||
env:
|
||||
REF_NAME: "${{ github.ref_name }}"
|
||||
@@ -69,14 +81,14 @@ jobs:
|
||||
|
||||
if (event_name === "push" && ref_type === "branch") {
|
||||
const {data: pulls} = await github.rest.pulls.list({ owner, repo, head: `${owner}:${ref_name}`, state: "open" });
|
||||
const pull = pulls.find((pr) => !!pr.labels.find((l) => l.name === "build-pr-jar"));
|
||||
const pull = pulls.find((pr) => !!pr.labels.find((l) => l.name === "publish-pr"));
|
||||
if (pull) {
|
||||
result["pr"] = pull.number;
|
||||
result["action"] = "paperclip";
|
||||
core.notice(`This is a push action but to a branch with an open PR with the build paperclip label (${JSON.stringify(result)})`);
|
||||
return result;
|
||||
}
|
||||
} else if (event_name === "pull_request" && event.pull_request.labels.find((l) => l.name === "build-pr-jar")) {
|
||||
} else if (event_name === "pull_request" && event.pull_request.labels.find((l) => l.name === "publish-pr")) {
|
||||
result["pr"] = event.pull_request.number;
|
||||
result["action"] = "paperclip";
|
||||
core.notice(`This is a pull request action with a build paperclip label (${JSON.stringify(result)})`);
|
||||
@@ -96,30 +108,44 @@ jobs:
|
||||
|
||||
- name: Upload Test Results
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: Test Results (${{ matrix.java }})
|
||||
name: test-results
|
||||
path: |
|
||||
**/build/test-results/test/TEST-*.xml
|
||||
|
||||
- name: Publish Checkstyle Report
|
||||
uses: Juuxel/publish-checkstyle-report@v3
|
||||
if: failure() || success()
|
||||
with:
|
||||
reports: |
|
||||
*/build/reports/checkstyle/*.xml
|
||||
|
||||
- name: Create Paperclip Jar
|
||||
if: fromJSON(steps.determine.outputs.result).action == 'paperclip'
|
||||
run: ./gradlew createMojmapPaperclipJar --stacktrace
|
||||
run: ./gradlew createPaperclipJar --stacktrace
|
||||
|
||||
- name: Upload Paperclip Jar
|
||||
if: fromJSON(steps.determine.outputs.result).action == 'paperclip'
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: paper-${{ fromJSON(steps.determine.outputs.result).pr }}
|
||||
path: paper-server/build/libs/paper-paperclip-*-mojmap.jar
|
||||
path: paper-server/build/libs/paper-paperclip-*.jar
|
||||
|
||||
- name: Publish Artifacts
|
||||
if: fromJSON(steps.determine.outputs.result).action == 'paperclip'
|
||||
uses: PaperMC/action-pr-publishing/upload@paper
|
||||
with:
|
||||
# TODO fallback for failing javadoc
|
||||
publishing-task: ":paper-api:publishAllPublicationsTo_githubPackages_PRsRepository publishDevBundlePublicationTo_githubPackages_PRsRepository -PpublishDevBundle"
|
||||
event_file:
|
||||
name: "Event File"
|
||||
# Only run on PRs if the source branch is on someone else's repo
|
||||
if: ${{ github.event_name != 'pull_request' || github.repository != github.event.pull_request.head.repo.full_name }}
|
||||
needs: build
|
||||
if: ${{ !cancelled() && needs.build.result != 'skipped' }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Upload
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: Event File
|
||||
name: event-data
|
||||
path: ${{ github.event_path }}
|
||||
@@ -2,7 +2,11 @@ name: Close invalid PRs
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [ opened ]
|
||||
types:
|
||||
- opened
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
run:
|
||||
@@ -12,7 +16,7 @@ jobs:
|
||||
github.head_ref == 'main' ||
|
||||
github.event.pull_request.head.repo.owner.type != 'User'
|
||||
)
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: namespace-profile-linux-small
|
||||
steps:
|
||||
- uses: superbrothers/close-pull-request@v3
|
||||
id: "main_branch"
|
||||
|
||||
@@ -0,0 +1,185 @@
|
||||
on:
|
||||
issues:
|
||||
types:
|
||||
- opened
|
||||
|
||||
jobs:
|
||||
detect-version:
|
||||
runs-on: namespace-profile-linux-small
|
||||
timeout-minutes: 5
|
||||
permissions:
|
||||
issues: read
|
||||
outputs:
|
||||
version: ${{ steps.detect.outputs.version }}
|
||||
steps:
|
||||
- id: detect
|
||||
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
||||
with:
|
||||
script: |
|
||||
// Capturing Groups:
|
||||
// 1 = Brand
|
||||
// 2 = Minecraft Version
|
||||
// 3 = Build Number
|
||||
// 4 = Git Branch/Commit
|
||||
// 5 = Build Time
|
||||
const NEW_PATTERN = /This server is running ([A-Za-z0-9]+) version ([\d\.]+)-(DEV|\d+)-(.*) \((.*)\) \(Implementing API version .*\)(?: \(Git: .*\))?/;
|
||||
|
||||
// Capturing Groups:
|
||||
// 1 = Brand
|
||||
// 2 = Minecraft Version
|
||||
const OLD_PATTERN = /This server is running ([A-Za-z0-9]+) version .* \(MC: ([^\)]+)\) \(Implementing API version .*\)(?: \(Git: .*\))?/;
|
||||
|
||||
if (!context.payload.issue.body) {
|
||||
core.info("Issue body is empty; unable to detect version.");
|
||||
return;
|
||||
}
|
||||
|
||||
let version;
|
||||
|
||||
const match = context.payload.issue.body.match(NEW_PATTERN);
|
||||
if (match && match.length === 6) {
|
||||
version = match[2];
|
||||
} else {
|
||||
const oldMatch = context.payload.issue.body.match(OLD_PATTERN);
|
||||
if (oldMatch) {
|
||||
version = oldMatch[2];
|
||||
}
|
||||
}
|
||||
|
||||
if (!version) {
|
||||
core.info("Unable to determine the Minecraft version from the issue body.");
|
||||
return;
|
||||
}
|
||||
|
||||
core.info(`Detected Minecraft version: ${version}`);
|
||||
core.setOutput('version', version);
|
||||
|
||||
label-version:
|
||||
needs: detect-version
|
||||
if: needs.detect-version.outputs.version != ''
|
||||
runs-on: namespace-profile-linux-small
|
||||
timeout-minutes: 5
|
||||
permissions:
|
||||
issues: write
|
||||
steps:
|
||||
- uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
||||
with:
|
||||
script: |
|
||||
const version = '${{ needs.detect-version.outputs.version }}';
|
||||
|
||||
await github.rest.issues.addLabels({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: context.payload.issue.number,
|
||||
labels: [`version: ${version}`],
|
||||
});
|
||||
|
||||
core.info(`Added version label for ${version}.`);
|
||||
|
||||
check-support:
|
||||
needs:
|
||||
- detect-version
|
||||
- label-version
|
||||
if: needs.detect-version.outputs.version != ''
|
||||
runs-on: namespace-profile-linux-small
|
||||
timeout-minutes: 5
|
||||
permissions:
|
||||
issues: write
|
||||
steps:
|
||||
- uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
||||
with:
|
||||
script: |
|
||||
const version = '${{ needs.detect-version.outputs.version }}';
|
||||
|
||||
const apiUrl = `https://fill.papermc.io/v3/projects/paper/versions/${encodeURIComponent(version)}`;
|
||||
core.info(`Fetching version information from ${apiUrl}`);
|
||||
|
||||
let supportStatus;
|
||||
let supportEnd;
|
||||
|
||||
try {
|
||||
const response = await fetch(apiUrl, {
|
||||
headers: {
|
||||
'Accept': 'application/json',
|
||||
'User-Agent': `GitHub Actions (${context.repo.owner}/${context.repo.repo})`,
|
||||
},
|
||||
});
|
||||
|
||||
if (response.status === 404) {
|
||||
core.info(`Fill has no information for version ${version}.`);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!response.ok) {
|
||||
core.error(`Fill returned HTTP ${response.status}: ${response.statusText}`);
|
||||
return;
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
supportStatus = data?.version?.support?.status;
|
||||
supportEnd = data?.version?.support?.end;
|
||||
} catch (error) {
|
||||
core.warning(`Failed to fetch support information: ${error}`);
|
||||
return;
|
||||
}
|
||||
|
||||
core.info(`Fill support status for ${version}: ${supportStatus}`);
|
||||
|
||||
// Only comment for deprecated or unsupported versions.
|
||||
let comment;
|
||||
|
||||
if (supportStatus === 'UNSUPPORTED') {
|
||||
comment =
|
||||
`⚠️ **Minecraft ${version} is unsupported.**\n\n` +
|
||||
`This version is no longer supported by PaperMC. ` +
|
||||
(supportEnd
|
||||
? `Support _ended_ on ${supportEnd}. `
|
||||
: '') +
|
||||
`Please consider upgrading to a supported Minecraft version.`;
|
||||
} else if (supportStatus === 'DEPRECATED') {
|
||||
comment =
|
||||
`⚠️ **Minecraft ${version} is deprecated.**\n\n` +
|
||||
`This version is deprecated by PaperMC. ` +
|
||||
(supportEnd
|
||||
? `Support will end on ${supportEnd}. `
|
||||
: '') +
|
||||
`Please consider upgrading to a supported Minecraft version.`;
|
||||
} else {
|
||||
core.info(`${version} is supported or has an unknown status.`);
|
||||
return;
|
||||
}
|
||||
|
||||
await github.rest.issues.createComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: context.payload.issue.number,
|
||||
body: comment,
|
||||
});
|
||||
|
||||
if (supportStatus === 'UNSUPPORTED') {
|
||||
try {
|
||||
await github.rest.issues.removeLabel({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: context.payload.issue.number,
|
||||
name: 'status: needs triage',
|
||||
});
|
||||
} catch (error) {
|
||||
// ignore - missing label is not an error
|
||||
}
|
||||
|
||||
await github.rest.issues.addLabels({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: context.payload.issue.number,
|
||||
labels: ['resolution: unsupported'],
|
||||
});
|
||||
|
||||
await github.rest.issues.update({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: context.payload.issue.number,
|
||||
state: 'closed',
|
||||
state_reason: 'not_planned',
|
||||
});
|
||||
}
|
||||
@@ -1,84 +0,0 @@
|
||||
# This workflow run on the completion of the
|
||||
# build workflow but only does anything if the
|
||||
# triggering workflow uploaded an artifact.
|
||||
#
|
||||
# Do note that it is then the trigger workflow that
|
||||
# determines if this will update the PR text body. All
|
||||
# this workflow does is check if an uploaded artifact
|
||||
# exists and there is a PR tied to the previous workflow.
|
||||
|
||||
name: Comment on pull request
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ['Build Paper']
|
||||
types: [completed]
|
||||
jobs:
|
||||
pr_comment:
|
||||
if: github.event.workflow_run.conclusion == 'success'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/github-script@v7
|
||||
env:
|
||||
BRANCH_NAME: "${{ github.event.workflow_run.head_branch }}"
|
||||
PR_OWNER: "${{ github.event.workflow_run.head_repository.owner.login }}"
|
||||
PR_SHA: "${{ github.event.workflow_run.head_sha }}"
|
||||
RUN_ID: "${{ github.event.workflow_run.id }}"
|
||||
REPO_ID: "${{ github.event.repository.id }}"
|
||||
EVENT_TYPE: "${{ github.event.workflow_run.event}}"
|
||||
PULL_REQUESTS: "${{ toJSON(github.event.workflow_run.pull_requests) }}"
|
||||
with:
|
||||
# This snippet is public-domain, taken from
|
||||
# https://github.com/oprypin/nightly.link/blob/master/.github/workflows/pr-comment.yml
|
||||
# Modified extensively by Machine_Maker
|
||||
script: |
|
||||
async function updatePR(owner, repo, issue_number, purpose, body) {
|
||||
const { data } = await github.rest.issues.get({ owner, repo, issue_number });
|
||||
core.debug(JSON.stringify(data, null, 2));
|
||||
|
||||
const marker = `<!-- bot: ${purpose} -->`;
|
||||
|
||||
let new_body = data.body ? data.body.trim().split(marker)[0].trim() : "";
|
||||
new_body += `\n${marker}\n---\n${body}`;
|
||||
|
||||
core.info(`Updating the text body of PR #${issue_number} in ${owner}/${repo}`);
|
||||
await github.rest.issues.update({ owner, repo, issue_number, body: new_body });
|
||||
}
|
||||
|
||||
const { owner, repo } = context.repo;
|
||||
const run_id = `${process.env.RUN_ID}`;
|
||||
const repo_id = `${process.env.REPO_ID}`;
|
||||
|
||||
let pulls = [];
|
||||
const event_type = `${process.env.EVENT_TYPE}`;
|
||||
if (event_type === "push") { // if push, it's from the same repo which means `pull_requests` is populated
|
||||
pulls = JSON.parse(`${process.env.PULL_REQUESTS}`);
|
||||
} else {
|
||||
const pr_branch = `${process.env.BRANCH_NAME}`;
|
||||
const pr_sha = `${process.env.PR_SHA}`;
|
||||
const pr_owner = `${process.env.PR_OWNER}`;
|
||||
const { data } = await github.rest.pulls.list({ owner, repo, head: `${pr_owner}:${pr_branch}`, state: "open" });
|
||||
core.debug(JSON.stringify(data, null, 2));
|
||||
pulls = data.filter((pr) => pr.head.sha === pr_sha && pr.labels.find((l) => l.name === "build-pr-jar"));
|
||||
}
|
||||
|
||||
if (!pulls.length) {
|
||||
return core.notice("This workflow doesn't have any pull requests!");
|
||||
} else if (pulls.length > 1) {
|
||||
core.info(JSON.stringify(pulls, null, 2));
|
||||
return core.error("Found multiple matching PRs");
|
||||
}
|
||||
const pull_request = pulls[0];
|
||||
|
||||
const artifacts = await github.paginate(github.rest.actions.listWorkflowRunArtifacts, { owner, repo, run_id });
|
||||
if (!artifacts.length) {
|
||||
return core.info("Skipping comment due to no artifact found");
|
||||
}
|
||||
const artifact = artifacts.find((art) => art.name === `paper-${pull_request.number}`);
|
||||
if (!artifact) {
|
||||
return core.info("Skipping comment to no matching artifact found");
|
||||
}
|
||||
|
||||
const link = `https://nightly.link/${owner}/${repo}/actions/artifacts/${artifact.id}.zip`;
|
||||
const body = `Download the paperclip jar for this pull request: [${artifact.name}.zip](${link})`;
|
||||
core.info(`Adding a link to ${link}`);
|
||||
await updatePR(owner, repo, pull_request.number, "paperclip-pr-build", body);
|
||||
@@ -0,0 +1,14 @@
|
||||
name: PR Review Signal
|
||||
|
||||
on:
|
||||
pull_request_review:
|
||||
types:
|
||||
- submitted
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
signal:
|
||||
runs-on: namespace-profile-linux-small
|
||||
steps:
|
||||
- run: echo "A PR review was submitted"
|
||||
@@ -0,0 +1,69 @@
|
||||
name: Update PR Project Status
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows:
|
||||
- PR Review Signal
|
||||
types:
|
||||
- completed
|
||||
|
||||
schedule:
|
||||
- cron: "07 6 * * *"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
review-submitted:
|
||||
if: >
|
||||
github.repository_owner == 'PaperMC' &&
|
||||
github.event_name == 'workflow_run' &&
|
||||
github.event.workflow_run.event == 'pull_request_review' &&
|
||||
github.event.workflow_run.conclusion == 'success'
|
||||
|
||||
concurrency:
|
||||
group: pr-review-status-${{ github.event.workflow_run.head_sha }}
|
||||
cancel-in-progress: false
|
||||
runs-on: namespace-profile-linux-small
|
||||
steps:
|
||||
- name: "authenticate"
|
||||
id: "authenticate"
|
||||
uses: actions/create-github-app-token@v3.2.0
|
||||
with:
|
||||
client-id: "${{ secrets.PROJECTS_CLIENT_ID }}"
|
||||
private-key: "${{ secrets.PROJECTS_PRIVATE_KEY }}"
|
||||
owner: "${{ github.repository_owner }}"
|
||||
|
||||
- name: Set status from approval
|
||||
uses: PaperMC/update-projects-action/review-status@v0.4.1
|
||||
with:
|
||||
github-token: "${{ steps.authenticate.outputs.token }}"
|
||||
mode: review
|
||||
project-url: https://github.com/orgs/PaperMC/projects/2
|
||||
maintainer-teams: paper-maintainers
|
||||
developer-teams: paper-developers
|
||||
|
||||
promote-delayed-approvals:
|
||||
if: >
|
||||
github.repository_owner == 'PaperMC' &&
|
||||
(github.event_name == 'schedule' || github.event_name == 'workflow_dispatch')
|
||||
concurrency:
|
||||
group: pr-review-status-promote
|
||||
cancel-in-progress: false
|
||||
runs-on: namespace-profile-linux-small
|
||||
steps:
|
||||
- name: "authenticate"
|
||||
id: "authenticate"
|
||||
uses: actions/create-github-app-token@v3.2.0
|
||||
with:
|
||||
client-id: "${{ secrets.PROJECTS_CLIENT_ID }}"
|
||||
private-key: "${{ secrets.PROJECTS_PRIVATE_KEY }}"
|
||||
owner: "${{ github.repository_owner }}"
|
||||
|
||||
- name: Promote delayed approvals
|
||||
uses: PaperMC/update-projects-action/review-status@v0.4.1
|
||||
with:
|
||||
github-token: "${{ steps.authenticate.outputs.token }}"
|
||||
mode: promote
|
||||
project-url: https://github.com/orgs/PaperMC/projects/2
|
||||
maintainer-teams: paper-maintainers
|
||||
developer-teams: paper-developers
|
||||
promote-after-days: "14"
|
||||
@@ -14,17 +14,17 @@ jobs:
|
||||
concurrency:
|
||||
group: update-bugs-project-${{ github.event.issue.number }}
|
||||
cancel-in-progress: true
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: namespace-profile-linux-small
|
||||
steps:
|
||||
- name: "authenticate"
|
||||
id: "authenticate"
|
||||
uses: "tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92" # v1
|
||||
uses: actions/create-github-app-token@v3.2.0
|
||||
with:
|
||||
app_id: "${{ secrets.PROJECTS_APP_ID }}"
|
||||
installation_id: "36153445"
|
||||
private_key: "${{ secrets.PROJECTS_PRIVATE_KEY }}"
|
||||
app-id: "${{ secrets.PROJECTS_APP_ID }}"
|
||||
private-key: "${{ secrets.PROJECTS_PRIVATE_KEY }}"
|
||||
owner: "${{ github.repository_owner }}"
|
||||
|
||||
- uses: PaperMC/update-projects-action@v0.2.0
|
||||
- uses: PaperMC/update-projects-action@v0.3.0
|
||||
name: Update open issue
|
||||
if: github.event.issue.state == 'open'
|
||||
with:
|
||||
@@ -52,7 +52,7 @@ jobs:
|
||||
"status: unlikely": "✅ Accepted"
|
||||
}
|
||||
|
||||
- uses: PaperMC/update-projects-action@v0.2.0
|
||||
- uses: PaperMC/update-projects-action@v0.3.0
|
||||
name: Update closed issue
|
||||
if: github.event.issue.state == 'closed'
|
||||
with:
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
name: Publish PR
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: [ "Build Paper" ]
|
||||
types:
|
||||
- completed
|
||||
|
||||
permissions:
|
||||
packages: write # To upload the PR
|
||||
actions: write # To get information about the uploading workflow run and to delete the run artifacts
|
||||
contents: write # To download the `maven-publish` artifact, and to be able to create commit comments
|
||||
issues: write # To be able to create PR comments
|
||||
pull-requests: write # To be able to create PR comments
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: namespace-profile-linux-small
|
||||
steps:
|
||||
- name: Generate an Application repository access token
|
||||
id: gen_repo_token
|
||||
uses: actions/create-github-app-token@v3.2.0
|
||||
with:
|
||||
client-id: ${{ secrets.PR_PUBLISHING_GH_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PR_PUBLISHING_GH_APP_KEY }}
|
||||
repositories: ${{ github.repository }}
|
||||
- name: Publish PR
|
||||
uses: PaperMC/action-pr-publishing@v1.1.1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ steps.gen_repo_token.outputs.token }}
|
||||
with:
|
||||
publishing-token: ${{ github.token }}
|
||||
uploader-workflow-name: Build Paper
|
||||
artifacts-base-path: io/papermc/paper
|
||||
artifacts-size-limit: 100
|
||||
base-maven-url: 'https://maven-prs.papermc.io'
|
||||
self-name: 'papermc-pr-publishing[bot]'
|
||||
@@ -0,0 +1,56 @@
|
||||
name: Release 26.3
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
cancel-in-progress: false
|
||||
group: release-26.3
|
||||
|
||||
jobs:
|
||||
release:
|
||||
# guard for manual dispatch
|
||||
if: ${{ github.ref == 'refs/heads/main' }}
|
||||
runs-on: namespace-profile-linux-default
|
||||
timeout-minutes: 30
|
||||
#env:
|
||||
# BUILD_NUMBER: ${{ github.run_number }}
|
||||
steps:
|
||||
- name: "environment"
|
||||
run: |
|
||||
echo "BUILD_NUMBER=$((129 + GITHUB_RUN_NUMBER))" >> "$GITHUB_ENV"
|
||||
echo "BUILD_STARTED_AT=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$GITHUB_ENV"
|
||||
|
||||
- name: "git / checkout"
|
||||
uses: namespacelabs/nscloud-checkout-action@66f2dc6f6c42a8ac6c4e53473c4840006822831e # v9.0.1
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- uses: papermc/ci/setup-gradle@main
|
||||
|
||||
- uses: papermc/ci/build-paper@main
|
||||
|
||||
- if: ${{ !cancelled() }}
|
||||
uses: papermc/ci/upload-event-data@main
|
||||
with:
|
||||
path: ${{ github.event_path }}
|
||||
|
||||
- if: ${{ !cancelled() }}
|
||||
uses: papermc/ci/upload-test-results@main
|
||||
|
||||
- uses: papermc/ci/publish-fill@main
|
||||
with:
|
||||
fill_api_url: ${{ secrets.FILL_API_URL }}
|
||||
fill_api_key: ${{ secrets.FILL_API_KEY }}
|
||||
|
||||
- uses: papermc/ci/publish-maven@main
|
||||
with:
|
||||
maven_username: ${{ secrets.ARTIFACTORY_USERNAME }}
|
||||
maven_password: ${{ secrets.ARTIFACTORY_PASSWORD }}
|
||||
maven_tasks: -PpublishDevBundle :paper-api:publish publishDevBundlePublicationToPaperReleasesRepository
|
||||
@@ -0,0 +1,24 @@
|
||||
name: Test Results
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: [ "Build Paper" ]
|
||||
types:
|
||||
- completed
|
||||
|
||||
permissions:
|
||||
actions: read
|
||||
checks: write
|
||||
|
||||
jobs:
|
||||
test-results:
|
||||
name: Test Results
|
||||
if: github.event.workflow_run.conclusion != 'skipped'
|
||||
runs-on: namespace-profile-linux-small
|
||||
steps:
|
||||
- uses: papermc/ci/publish-test-results@main
|
||||
with:
|
||||
event: ${{ github.event.workflow_run.event }}
|
||||
commit: ${{ github.event.workflow_run.head_sha }}
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
run_id: ${{ github.event.workflow_run.id }}
|
||||
@@ -1,32 +0,0 @@
|
||||
name: Test Results
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: [ "Build Paper" ]
|
||||
types:
|
||||
- completed
|
||||
permissions: { }
|
||||
|
||||
jobs:
|
||||
test-results:
|
||||
name: Test Results
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event.workflow_run.conclusion != 'skipped'
|
||||
permissions:
|
||||
checks: write
|
||||
# for downloading test result artifacts
|
||||
actions: read
|
||||
steps:
|
||||
- name: Download and Extract Artifacts
|
||||
uses: dawidd6/action-download-artifact@v6
|
||||
with:
|
||||
run_id: ${{ github.event.workflow_run.id }}
|
||||
path: artifacts
|
||||
- name: Publish Test Results
|
||||
uses: EnricoMi/publish-unit-test-result-action@v2
|
||||
with:
|
||||
commit: ${{ github.event.workflow_run.head_sha }}
|
||||
event_file: artifacts/Event File/event.json
|
||||
event_name: ${{ github.event.workflow_run.event }}
|
||||
files: "artifacts/**/*.xml"
|
||||
comment_mode: off
|
||||
+2
-1
@@ -20,6 +20,7 @@ nbactions.xml
|
||||
bin/
|
||||
dist/
|
||||
manifest.mf
|
||||
__pycache__/
|
||||
|
||||
# Mac filesystem dust
|
||||
.DS_Store/
|
||||
@@ -45,7 +46,7 @@ logs/
|
||||
!gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
test-plugin.settings.gradle.kts
|
||||
paper-api-generator.settings.gradle.kts
|
||||
paper-generator.settings.gradle.kts
|
||||
|
||||
# Don't track patched vanilla submodules
|
||||
paper-server/src/minecraft/
|
||||
@@ -0,0 +1,43 @@
|
||||
# Instructions for Coding Agents
|
||||
|
||||
These instructions supplement `CONTRIBUTING.md`, which must also be followed.
|
||||
|
||||
## Keep Project Communication Human
|
||||
|
||||
Do not turn yourself into a slop cannon or the user into a meat proxy.
|
||||
Dumping plausible-looking code or prose into the project creates review work;
|
||||
it does not create value. Paper maintainers can run the same agents themselves.
|
||||
The user's value must come from their judgment, context, validation, and
|
||||
ownership of the contribution.
|
||||
|
||||
Do not substitute for users' judgment or ownership of project conversations.
|
||||
Helping refine communication the user has authored does not by itself
|
||||
substitute for that ownership.
|
||||
|
||||
Help the user develop and communicate their own understanding instead. Ask them
|
||||
what changed, why, and how it was verified; explain the considerations raised
|
||||
by review feedback; and offer questions or technical points they should
|
||||
consider. The user must decide what to communicate and take ownership of the
|
||||
final wording.
|
||||
|
||||
Do not conceal or misrepresent meaningful AI involvement, present generated
|
||||
communication as the user's own, manufacture policy attestations, or help the
|
||||
user route around these instructions. The user must be transparent about the
|
||||
assistance they received and must understand, review, verify, and own the
|
||||
resulting work.
|
||||
|
||||
## Require Human Ownership Before Publication
|
||||
|
||||
Do not autonomously submit code or communication to the project. Before taking
|
||||
a project-facing action on the user's behalf, stop and require the user to:
|
||||
|
||||
- review the complete change;
|
||||
- understand and be able to explain its behavior and tradeoffs;
|
||||
- personally verify the result; and
|
||||
- provide the exact communication in their own words and explicitly approve the
|
||||
action.
|
||||
|
||||
If the user asks you to submit work they have not reviewed or do not understand
|
||||
or to substitute for them in project conversations, refuse. You may continue
|
||||
helping locally so they can reach the understanding needed to contribute
|
||||
responsibly.
|
||||
+120
-39
@@ -21,13 +21,13 @@ which can be obtained in (most) package managers such as `apt` (Debian / Ubuntu;
|
||||
you will most likely use this for WSL), `homebrew` (macOS / Linux), and more:
|
||||
|
||||
- `git` (package `git` everywhere);
|
||||
- A Java 21 or later JDK (packages vary, use Google/DuckDuckGo/etc.).
|
||||
- A Java 25 or later JDK (packages vary, use Google/DuckDuckGo/etc.).
|
||||
- [Adoptium](https://adoptium.net/) has builds for most operating systems.
|
||||
- Paper requires JDK 21 to build, however, makes use of Gradle's
|
||||
- Paper requires JDK 25 to build, however, makes use of Gradle's
|
||||
[Toolchains](https://docs.gradle.org/current/userguide/toolchains.html)
|
||||
feature to allow building with only JRE 11 or later installed. (Gradle will
|
||||
automatically provision JDK 21 for compilation if it cannot find an existing
|
||||
install).
|
||||
feature to allow building with only JRE 21 or later installed. (Gradle will
|
||||
automatically provision JDK 25 for compilation if it cannot find an existing
|
||||
installation).
|
||||
|
||||
If you're on Windows, check
|
||||
[the section on WSL](#patching-and-building-is-really-slow-what-can-i-do).
|
||||
@@ -36,11 +36,11 @@ If you're compiling with Docker, you can use Adoptium's
|
||||
[`eclipse-temurin`](https://hub.docker.com/_/eclipse-temurin/) images like so:
|
||||
|
||||
```console
|
||||
# docker run -it -v "$(pwd)":/data --rm eclipse-temurin:21.0.5_11-jdk bash
|
||||
# docker run -it -v "$(pwd)":/data --rm eclipse-temurin:25.0.2_10-jdk bash
|
||||
Pulling image...
|
||||
|
||||
root@abcdefg1234:/# javac -version
|
||||
javac 21.0.5
|
||||
javac 25.0.2
|
||||
```
|
||||
|
||||
## Understanding Patches
|
||||
@@ -66,7 +66,7 @@ On Windows, remove the `./` the beginning of `gradlew` commands;
|
||||
**Only changes made in `paper-server/src/minecraft` have to deal with the patch system.**
|
||||
|
||||
`paper-server/src/minecraft` is not a git repositories in the traditional sense. Its
|
||||
initial commits are the decompiled and deobfuscated Minecraft source files. The per-file
|
||||
initial commits are the decompiled Minecraft source files. The per-file
|
||||
patches are applied on top of these files as a single, large commit, which is then followed
|
||||
by the individual feature-patch commits.
|
||||
|
||||
@@ -184,14 +184,60 @@ These steps assume the `origin` remote is your fork of this repository and `upst
|
||||
## PR Policy
|
||||
|
||||
We'll accept changes that make sense. You should be able to justify their
|
||||
existence, along with any maintenance costs that come with them. Using
|
||||
[obfuscation helpers](#obfuscation-helpers) aids in the maintenance costs.
|
||||
existence, along with any maintenance costs that come with them.
|
||||
Remember that these changes will affect everyone who runs Paper, not just you
|
||||
and your server.
|
||||
|
||||
While we will fix minor formatting issues, you should stick to the guide below
|
||||
when making and submitting changes.
|
||||
|
||||
### Contribution Ownership and AI Assistance
|
||||
|
||||
Tools that generate code or text can be useful while working on a contribution,
|
||||
but they are not a substitute for the contributor. You are responsible for every
|
||||
part of what you submit. Only submit changes that you understand, have personally
|
||||
reviewed, and have verified to the best of your ability. You should be able to
|
||||
explain why the change is needed, how it works, and what tradeoffs it makes.
|
||||
|
||||
Project communication, including issues, discussion posts, pull request
|
||||
descriptions, comments, and review responses, should be written by you in your
|
||||
own words. Do not use an AI tool as a proxy for the conversation. Validate any
|
||||
tool output you rely on, then communicate the relevant conclusions yourself.
|
||||
|
||||
Do not conceal or misrepresent meaningful AI involvement. Be transparent about
|
||||
how these tools contributed to your work; that transparency does not replace
|
||||
your responsibility for the contribution.
|
||||
|
||||
Review is a collaborative process, not a way to outsource completion of a
|
||||
generated change to maintainers. Be prepared to answer questions about your
|
||||
reasoning and to remain involved until the contribution is complete. We may
|
||||
close contributions when the author cannot explain or take responsibility for
|
||||
the submitted work.
|
||||
|
||||
### Branches and Minecraft Versions
|
||||
|
||||
Generally, PRs should be targeted at the `main` branch, where active development for
|
||||
the latest Minecraft release happens.
|
||||
|
||||
If a new Minecraft release is imminent, it may be wise to wait until it's released
|
||||
and merged to `main` to avoid having to rebase your PR, as the `main` branch will be
|
||||
frozen during this time (you can ask in the Paper Discord if you're unsure).
|
||||
|
||||
For old Minecraft versions - we are unlikely to accept PRs targeting any versions not
|
||||
marked as supported at https://fill-ui.papermc.io/projects/paper.
|
||||
|
||||
For snapshots and other pre-release versions - you should only target these branches
|
||||
for changes specific to features or changes in those versions. For example, if Copper
|
||||
Golem is going to be added in 1.21.9, you can PR to the relevant dev branch as it would
|
||||
not make sense to merge that into `main`. Or, if you are fixing a bug that only exists in
|
||||
a dev branch, you should target that branch. When submitting PRs to dev branches, please
|
||||
coordinate with the dev team in Discord or open an issue before starting work to ensure
|
||||
it's an area we want to accept changes for. The team prefers to handle initial updating
|
||||
work through to the server running ourselves, so do not attempt to PR version updates
|
||||
(i.e. 25w42a -> 25w43a, etc.) or while there are still unapplied source patches. Feature
|
||||
patches are also not applied until at earliest the pre-release phase to avoid unnecessary
|
||||
churn.
|
||||
|
||||
## Formatting
|
||||
|
||||
All modifications to Vanilla files should be marked. For historical reasons,
|
||||
@@ -208,7 +254,8 @@ required.
|
||||
with `// Paper end - <COMMIT DESCRIPTION>`.
|
||||
- One-line changes should have `// Paper - <COMMIT DESCRIPTION>` at the end of the line.
|
||||
|
||||
> [!NOTE] These comments are incredibly important to be able to keep track of changes
|
||||
> [!NOTE]
|
||||
> These comments are incredibly important to be able to keep track of changes
|
||||
> across files and to remember what they are for, even a decade into the future.
|
||||
|
||||
Here's an example of how to mark changes by Paper:
|
||||
@@ -256,13 +303,47 @@ public class SomeVanillaClass {
|
||||
|
||||
We are in the process of switching nullability annotation libraries, so you might need to use one or the other:
|
||||
|
||||
**For classes we add**: Fields, method parameters and return types that are nullable should be marked via the
|
||||
**For classes, we add or modifications to Vanilla Files**: Fields, method parameters and return types that are nullable should be marked via the
|
||||
`@Nullable` annotation from `org.jspecify.annotations`. Whenever you create a new class, add `@NullMarked`, meaning types
|
||||
are assumed to be non-null by default. For less obvious placing such as on generics or arrays, see the [JSpecify docs](https://jspecify.dev/docs/user-guide/).
|
||||
|
||||
**For other classes**: Keep using both `@Nullable` and `@NotNull` from `org.jetbrains.annotations`. These
|
||||
will be replaced later.
|
||||
|
||||
### API checks
|
||||
|
||||
When performing API-related checks where an exception needs to be thrown under specific conditions, you should use the `Preconditions` class.
|
||||
|
||||
#### Checking Method Arguments
|
||||
To validate method arguments, use `Preconditions#checkArgument`. This will throw an `IllegalArgumentException` if the condition is not met.
|
||||
> Don't use Preconditions#checkNotNull, as it throws a NullPointerException, which makes it harder to determine whether the error was caused by an internal issue or invalid arguments.
|
||||
|
||||
ex:
|
||||
```java
|
||||
@Override
|
||||
public void sendMessage(Player player, Component message) {
|
||||
Preconditions.checkArgument(player != null, "player cannot be null");
|
||||
Preconditions.checkArgument(player.isOnline(), "player %s must be online", player.getName());
|
||||
Preconditions.checkArgument(message != null, "message cannot be null");
|
||||
// rest of code
|
||||
}
|
||||
```
|
||||
|
||||
#### Checking Object State
|
||||
To validate the state of an object inside a method, use `Preconditions#checkState`. This will throw an `IllegalStateException` if the condition is not met.
|
||||
ex:
|
||||
```java
|
||||
private Player player;
|
||||
|
||||
@Override
|
||||
public void sendMessage(Component message) {
|
||||
Preconditions.checkArgument(message != null, "message cannot be null");
|
||||
Preconditions.checkState(this.player != null, "player cannot be null");
|
||||
Preconditions.checkState(this.player.isOnline(), "player %s must be online", this.player.getName());
|
||||
// rest of code
|
||||
}
|
||||
```
|
||||
|
||||
## Access Transformers
|
||||
Sometimes, Vanilla code already contains a field, method, or type you want to access
|
||||
but the visibility is too low (e.g. a private field in an entity class). Paper can use access transformers
|
||||
@@ -323,26 +404,6 @@ index a92bf8967..d0ab87d0f 100644
|
||||
```
|
||||
-->
|
||||
|
||||
## Obfuscation Helpers
|
||||
|
||||
While rarely needed, obfuscation helpers are sometimes useful when it comes
|
||||
to unmapped local variables, or poorly named method parameters. In an effort
|
||||
to make future updates easier on ourselves, Paper tries to use obfuscation
|
||||
helpers wherever it makes sense. The purpose of these helpers is to make the
|
||||
code more readable and maintainable. These helpers should be made easy to
|
||||
inline by the JVM wherever possible.
|
||||
|
||||
An example of an obfuscation helper for a local variable:
|
||||
```java
|
||||
double d0 = entity.getX(); final double fromX = d0; // Paper - OBFHELPER
|
||||
// ...
|
||||
this.someMethod(fromX); // Paper
|
||||
```
|
||||
|
||||
While they may not always be done in exactly the same way, the general goal is
|
||||
always to improve readability and maintainability. Use your best judgment and do
|
||||
what fits best in your situation.
|
||||
|
||||
## Configuration files
|
||||
|
||||
To use a configurable value in your patch, add a new field in either the
|
||||
@@ -382,13 +443,19 @@ int maxPlayers = GlobalConfiguration.get().misc.maxNumOfPlayers;
|
||||
Generally for global config values you will use the fully qualified class name,
|
||||
`io.papermc.paper.configuration.GlobalConfiguration` since it's not imported in
|
||||
most places.
|
||||
---
|
||||
|
||||
If you are adding a new world config value, you must have access to an instance
|
||||
of the `net.minecraft.world.level.Level` which you can then access the config by doing
|
||||
```java
|
||||
int maxPlayers = level.paperConfig().misc.maxNumOfPlayers;
|
||||
```
|
||||
|
||||
#### Documentation
|
||||
When adding or removing a config option, you should open a pull request in our [documentation repository](https://github.com/PaperMC/docs)
|
||||
to keep it in sync and accurate. If you're unsure whether your original change will be accepted, then it's fine to wait with making the documentation
|
||||
pull request until a maintainer has reviewed your changes. Once everything is done, the documentation pull request will be merged at the same time
|
||||
that your original pull request is.
|
||||
|
||||
## Testing API changes
|
||||
|
||||
### Using the Paper Test Plugin
|
||||
@@ -417,14 +484,28 @@ If you use Maven to build your plugin:
|
||||
If you use Windows and don't usually build using WSL, you might not need to
|
||||
do this.
|
||||
|
||||
## Tips and Tricks
|
||||
|
||||
### IntelliJ IDEA
|
||||
|
||||
- Under `Settings > Appearance & Behavior > System Settings`, disable
|
||||
`Sync external changes: Periodically when the IDE is inactive (experimental)`.
|
||||
When disabled, the IDE will not attempt to reindex files while patches are applying
|
||||
unless you interact with the IDE during the process. This avoids severe slowdowns and freezes.
|
||||
- Under `Settings > Appearance & Behavior > System Settings`, you may also want to
|
||||
disable `Reopen projects on startup` to avoid freeze loops.
|
||||
|
||||
## Frequently Asked Questions
|
||||
|
||||
### My commit doesn't need a build, what do I do?
|
||||
|
||||
Quite simple: You add `[ci skip]` to the start of your commit subject.
|
||||
Quite simple: You add `[ci skip]` to the start of your pull request title.
|
||||
|
||||
This case most often applies to changes to files like `README.md`, this very
|
||||
file (`CONTRIBUTING.md`), the `LICENSE.md` file, and so forth.
|
||||
file (`CONTRIBUTING.md`), the `LICENSE.md` file, and also small updates to Javadocs or other documentation.
|
||||
|
||||
Do *not* add [ci skip] to the start of your individual commit subjects, as your
|
||||
pull request will not be mergeable until a new commit is added due to status check requirements.
|
||||
|
||||
### Patching and building is *really* slow, what can I do?
|
||||
|
||||
@@ -434,11 +515,11 @@ release, either update to Windows 10/11 or move to macOS/Linux/BSD.
|
||||
In order to speed up patching process on Windows, it's recommended you get WSL 2.
|
||||
This is available in Windows 10 v2004, build 19041 or higher. (You can check
|
||||
your version by running `winver` in the run window (Windows key + R)). If you're
|
||||
using an out of date version of Windows 10, update your system with the
|
||||
using an out-of-date version of Windows 10, update your system with the
|
||||
[Windows 10 Update Assistant](https://www.microsoft.com/en-us/software-download/windows10) or [Windows 11 Update Assistant](https://www.microsoft.com/en-us/software-download/windows11).
|
||||
|
||||
To set up WSL 2, follow the information here:
|
||||
<https://docs.microsoft.com/en-us/windows/wsl/install>
|
||||
<https://learn.microsoft.com/en-us/windows/wsl/install>
|
||||
|
||||
You will most likely want to use the Ubuntu apps. Once it's set up, install the
|
||||
required tools with `sudo apt-get update && sudo apt-get install $TOOL_NAMES
|
||||
@@ -447,5 +528,5 @@ required tools with `sudo apt-get update && sudo apt-get install $TOOL_NAMES
|
||||
everything like usual.
|
||||
|
||||
> ❗ Do not use the `/mnt/` directory in WSL! Instead, mount the WSL directories
|
||||
> in Windows like described here:
|
||||
> <https://docs.microsoft.com/en-us/windows/wsl/filesystems#view-your-current-directory-in-windows-file-explorer>
|
||||
> in Windows as described here:
|
||||
> <https://learn.microsoft.com/en-us/windows/wsl/filesystems#view-your-current-directory-in-windows-file-explorer>
|
||||
@@ -65,4 +65,7 @@ aerulion <aerulion@gmail.com>
|
||||
Lukas Planz <lukas.planz@web.de>
|
||||
granny <contact@granny.dev>
|
||||
mja00 <me@mja00.dev>
|
||||
roro1506HD <16260475+roro1506HD@users.noreply.github.com>
|
||||
Toffikk <slodkitofik@gmail.com>
|
||||
NonSwag <mail@nonswag.dev>
|
||||
```
|
||||
@@ -1,4 +1,6 @@
|
||||
Paper [](https://github.com/PaperMC/Paper/actions)
|
||||
Paper [](https://papermc.io/downloads/paper)
|
||||
[](https://github.com/PaperMC/Paper/actions)
|
||||
[](https://discord.gg/papermc)
|
||||
[](https://github.com/sponsors/PaperMC)
|
||||
[](https://opencollective.com/papermc)
|
||||
@@ -16,7 +18,7 @@ Paperclip is a jar file that you can download and run just like a normal jar fil
|
||||
|
||||
Download Paper from our [downloads page](https://papermc.io/downloads/paper).
|
||||
|
||||
Run the Paperclip jar directly from your server. Just like old times
|
||||
Run the Paperclip jar directly from your server. Just like old times.
|
||||
|
||||
* Documentation on using Paper: [docs.papermc.io](https://docs.papermc.io)
|
||||
* For a sneak peek at upcoming features, [see here](https://github.com/PaperMC/Paper/projects)
|
||||
@@ -27,6 +29,23 @@ How To (Plugin Developers)
|
||||
* See upcoming, pending, and recently added API [here](https://github.com/orgs/PaperMC/projects/2/views/4)
|
||||
* Paper API javadocs here: [papermc.io/javadocs](https://papermc.io/javadocs/)
|
||||
#### Repository (for paper-api)
|
||||
See [the docs](https://docs.papermc.io/paper/dev/project-setup/#adding-paper-as-a-dependency) for more details.
|
||||
##### Gradle
|
||||
```kotlin
|
||||
repositories {
|
||||
maven {
|
||||
url = uri("https://repo.papermc.io/repository/maven-public/")
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly("io.papermc.paper:paper-api:26.3.build.+")
|
||||
}
|
||||
|
||||
java {
|
||||
toolchain.languageVersion.set(JavaLanguageVersion.of(25))
|
||||
}
|
||||
```
|
||||
##### Maven
|
||||
|
||||
```xml
|
||||
@@ -40,32 +59,16 @@ How To (Plugin Developers)
|
||||
<dependency>
|
||||
<groupId>io.papermc.paper</groupId>
|
||||
<artifactId>paper-api</artifactId>
|
||||
<version>1.21.4-R0.1-SNAPSHOT</version>
|
||||
<version>[26.3.build,)</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
```
|
||||
##### Gradle
|
||||
```kotlin
|
||||
repositories {
|
||||
maven {
|
||||
url = uri("https://repo.papermc.io/repository/maven-public/")
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly("io.papermc.paper:paper-api:1.21.4-R0.1-SNAPSHOT")
|
||||
}
|
||||
|
||||
java {
|
||||
toolchain.languageVersion.set(JavaLanguageVersion.of(21))
|
||||
}
|
||||
```
|
||||
|
||||
How To (Compiling Jar From Source)
|
||||
------
|
||||
To compile Paper, you need JDK 21 and an internet connection.
|
||||
To compile Paper, you need JDK 25 and an internet connection.
|
||||
|
||||
Clone this repo, run `./gradlew applyPatches`, then `./gradlew createMojmapBundlerJar` from your terminal. You can find the compiled jar in the `paper-server/build/libs` directory.
|
||||
Clone this repo, run `./gradlew applyPatches`, then `./gradlew createPaperclipJar` from your terminal. You can find the compiled jar in the `paper-server/build/libs` directory.
|
||||
|
||||
To get a full list of tasks, run `./gradlew tasks`.
|
||||
|
||||
@@ -88,13 +91,11 @@ You can find our collective [here](https://opencollective.com/papermc), or you c
|
||||
Special Thanks To:
|
||||
-------------
|
||||
|
||||
[](https://namespace.so/github-actions/?utm_source=oss&utm_campaign=papermc)
|
||||
|
||||
[](https://www.yourkit.com/)
|
||||
|
||||
[YourKit](https://www.yourkit.com/), makers of the outstanding java profiler, support open source projects of all kinds with their full featured [Java](https://www.yourkit.com/java/profiler) and [.NET](https://www.yourkit.com/.net/profiler) application profilers. We thank them for granting Paper an OSS license so that we can make our software the best it can be.
|
||||
|
||||
[<img src="https://user-images.githubusercontent.com/21148213/121807008-8ffc6700-cc52-11eb-96a7-2f6f260f8fda.png" alt="" width="150">](https://www.jetbrains.com)
|
||||
|
||||
[JetBrains](https://www.jetbrains.com/), creators of the IntelliJ IDEA, supports Paper with one of their [Open Source Licenses](https://www.jetbrains.com/opensource/). IntelliJ IDEA is the recommended IDE for working with Paper, and most of the Paper team uses it.
|
||||
|
||||
All our sponsors!
|
||||
[](https://papermc.io/sponsors)
|
||||
@@ -5,10 +5,3 @@
|
||||
# authlib com/mojang/authlib/yggdrasil/YggdrasilGameProfileRepository.java
|
||||
# datafixerupper com.mojang.datafixers.DataFixerBuilder
|
||||
# datafixerupper com/mojang/datafixers/util/Either.java
|
||||
# To import classes from the vanilla Minecraft jar use `minecraft` as the artifactId:
|
||||
# minecraft net.minecraft.world.level.entity.LevelEntityGetterAdapter
|
||||
# minecraft net/minecraft/world/level/entity/LevelEntityGetter.java
|
||||
# To import minecraft data files, like the default chat type, use `mc_data` as the prefix:
|
||||
# mc_data chat_type/chat.json
|
||||
# mc_data dimension_type/overworld.json
|
||||
#
|
||||
@@ -1,4 +1,4 @@
|
||||
tiny 2 0 spigot mojang+yarn
|
||||
tiny 2 0 spigot mojang
|
||||
|
||||
# Originally DistanceManager, which also implements DistanceManager, so clashes since the implemented class
|
||||
# is imported and not fully qualified. Easiest fix is to just change the name
|
||||
|
||||
+267
-316
@@ -5,143 +5,128 @@ private-f net.minecraft.server.MinecraftServer connection
|
||||
private-f net.minecraft.server.MinecraftServer levels
|
||||
private-f net.minecraft.world.item.ItemStack components
|
||||
private-f net.minecraft.world.item.ItemStack item
|
||||
private-f net.minecraft.world.item.crafting.RecipeManager learnableRecipes
|
||||
private-f net.minecraft.world.level.block.entity.BeehiveBlockEntity stored
|
||||
protected net.minecraft.world.entity.LivingEntity skipDropExperience
|
||||
protected net.minecraft.world.level.Level thread
|
||||
protected-f net.minecraft.server.MinecraftServer worldData
|
||||
public net.minecraft.ChatFormatting code
|
||||
public net.minecraft.Util onThreadException(Ljava/lang/Thread;Ljava/lang/Throwable;)V
|
||||
public net.minecraft.advancements.Advancement decorateName(Lnet/minecraft/advancements/DisplayInfo;)Lnet/minecraft/network/chat/Component;
|
||||
public net.minecraft.commands.CommandSourceStack source
|
||||
public net.minecraft.commands.arguments.DimensionArgument ERROR_INVALID_VALUE
|
||||
public net.minecraft.commands.arguments.blocks.BlockInput tag
|
||||
public net.minecraft.core.MappedRegistry validateWrite(Lnet/minecraft/resources/ResourceKey;)V
|
||||
public net.minecraft.nbt.ListTag <init>(Ljava/util/List;B)V
|
||||
public net.minecraft.nbt.TagParser readArrayTag()Lnet/minecraft/nbt/Tag;
|
||||
public net.minecraft.nbt.TagParser type(Ljava/lang/String;)Lnet/minecraft/nbt/Tag;
|
||||
public net.minecraft.core.component.DataComponentPatch map
|
||||
public net.minecraft.core.component.Removed
|
||||
public net.minecraft.nbt.ListTag <init>(Ljava/util/List;)V
|
||||
public net.minecraft.nbt.ListTag identifyRawElementType()B
|
||||
public net.minecraft.network.Connection address
|
||||
public net.minecraft.network.Connection channel
|
||||
public net.minecraft.network.chat.HoverEvent$ItemStackInfo components
|
||||
public net.minecraft.network.chat.HoverEvent$ItemStackInfo count
|
||||
public net.minecraft.network.chat.HoverEvent$ItemStackInfo item
|
||||
public net.minecraft.network.chat.TextColor name
|
||||
public net.minecraft.network.chat.contents.TranslatableContents filterAllowedArguments(Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
|
||||
public net.minecraft.network.chat.numbers.FixedFormat value
|
||||
public net.minecraft.network.chat.numbers.StyledFormat style
|
||||
public net.minecraft.network.chat.contents.TranslatableContents PRIMITIVE_ARG_CODEC
|
||||
public net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket <init>(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/entity/BlockEntityType;Lnet/minecraft/nbt/CompoundTag;)V
|
||||
public net.minecraft.network.protocol.game.ClientboundBlockUpdatePacket blockState
|
||||
public net.minecraft.network.protocol.game.ClientboundSetDefaultSpawnPositionPacket pos
|
||||
public net.minecraft.network.protocol.game.ServerboundMovePlayerPacket hasPos
|
||||
public net.minecraft.network.protocol.game.ServerboundMovePlayerPacket hasRot
|
||||
public net.minecraft.network.protocol.game.ServerboundMovePlayerPacket x
|
||||
public net.minecraft.network.protocol.game.ServerboundMovePlayerPacket xRot
|
||||
public net.minecraft.network.protocol.game.ServerboundMovePlayerPacket y
|
||||
public net.minecraft.network.protocol.game.ServerboundMovePlayerPacket yRot
|
||||
public net.minecraft.network.protocol.game.ServerboundMovePlayerPacket z
|
||||
public net.minecraft.network.syncher.SynchedEntityData getItem(Lnet/minecraft/network/syncher/EntityDataAccessor;)Lnet/minecraft/network/syncher/SynchedEntityData$DataItem;
|
||||
public net.minecraft.resources.RegistryOps <init>(Lcom/mojang/serialization/DynamicOps;Lnet/minecraft/resources/RegistryOps$RegistryInfoLookup;)V
|
||||
public net.minecraft.resources.RegistryOps lookupProvider
|
||||
public net.minecraft.resources.RegistryOps$HolderLookupAdapter
|
||||
public net.minecraft.server.Main forceUpgrade(Lnet/minecraft/world/level/storage/LevelStorageSource$LevelStorageAccess;Lcom/mojang/datafixers/DataFixer;ZLjava/util/function/BooleanSupplier;Lnet/minecraft/core/RegistryAccess;Z)V
|
||||
public net.minecraft.server.MinecraftServer LOGGER
|
||||
public net.minecraft.server.MinecraftServer doRunTask(Lnet/minecraft/server/TickTask;)V
|
||||
public net.minecraft.server.MinecraftServer executor
|
||||
public net.minecraft.server.MinecraftServer fixerUpper
|
||||
public net.minecraft.server.MinecraftServer playerDataStorage
|
||||
public net.minecraft.server.MinecraftServer prepareLevels(Lnet/minecraft/server/level/progress/ChunkProgressListener;)V
|
||||
public net.minecraft.server.MinecraftServer progressListenerFactory
|
||||
public net.minecraft.server.MinecraftServer resources
|
||||
public net.minecraft.server.MinecraftServer serverThread
|
||||
public net.minecraft.server.MinecraftServer$ReloadableResources
|
||||
public net.minecraft.server.RegistryLayer STATIC_ACCESS
|
||||
public net.minecraft.server.ReloadableServerResources
|
||||
public net.minecraft.server.ServerAdvancementManager advancements
|
||||
public net.minecraft.server.Services USERID_CACHE_FILE
|
||||
public net.minecraft.server.dedicated.DedicatedServerProperties$WorldDimensionData
|
||||
public net.minecraft.server.dedicated.DedicatedServerProperties$WorldDimensionData <init>(Lcom/google/gson/JsonObject;Ljava/lang/String;)V
|
||||
public net.minecraft.server.dedicated.Settings getStringRaw(Ljava/lang/String;)Ljava/lang/String;
|
||||
public net.minecraft.server.dedicated.Settings properties
|
||||
public net.minecraft.server.level.ChunkHolder oldTicketLevel
|
||||
public net.minecraft.server.level.ChunkHolder playerProvider
|
||||
public net.minecraft.server.level.ChunkLevel BLOCK_TICKING_LEVEL
|
||||
public net.minecraft.server.level.ChunkLevel ENTITY_TICKING_LEVEL
|
||||
public net.minecraft.server.level.ChunkMap addEntity(Lnet/minecraft/world/entity/Entity;)V
|
||||
public net.minecraft.server.level.ChunkMap anyPlayerCloseEnoughForSpawning(Lnet/minecraft/world/level/ChunkPos;)Z
|
||||
public net.minecraft.server.level.ChunkMap distanceManager
|
||||
public net.minecraft.server.level.ChunkLevel FULL_CHUNK_LEVEL
|
||||
public net.minecraft.server.level.ChunkMap entityMap
|
||||
public net.minecraft.server.level.ChunkMap getVisibleChunkIfPresent(J)Lnet/minecraft/server/level/ChunkHolder;
|
||||
public net.minecraft.server.level.ChunkMap level
|
||||
public net.minecraft.server.level.ChunkMap progressListener
|
||||
public net.minecraft.server.level.ChunkMap save(Lnet/minecraft/world/level/chunk/ChunkAccess;)Z
|
||||
public net.minecraft.server.level.ChunkMap serverViewDistance
|
||||
public net.minecraft.server.level.ChunkMap setServerViewDistance(I)V
|
||||
public net.minecraft.server.level.ChunkMap toDrop
|
||||
public net.minecraft.server.level.ChunkMap updatingChunkMap
|
||||
public net.minecraft.server.level.ChunkMap visibleChunkMap
|
||||
public net.minecraft.server.level.ChunkMap$DistanceManager
|
||||
public net.minecraft.server.level.ChunkMap$TrackedEntity
|
||||
public net.minecraft.server.level.ChunkMap$TrackedEntity seenBy
|
||||
public net.minecraft.server.level.ChunkMap$TrackedEntity serverEntity
|
||||
public net.minecraft.server.level.DistanceManager simulationDistance
|
||||
public net.minecraft.server.level.DistanceManager tickets
|
||||
public net.minecraft.server.level.DistanceManager ticketStorage
|
||||
public net.minecraft.server.level.ServerBossEvent broadcast(Ljava/util/function/Function;)V
|
||||
public net.minecraft.server.level.ServerBossEvent visible
|
||||
public net.minecraft.server.level.ServerChunkCache mainThread
|
||||
public net.minecraft.server.level.ServerChunkCache mainThreadProcessor
|
||||
public net.minecraft.server.level.ServerChunkCache runDistanceManagerUpdates()Z
|
||||
public net.minecraft.server.level.ServerChunkCache spawnEnemies
|
||||
public net.minecraft.server.level.ServerChunkCache spawnFriendlies
|
||||
public net.minecraft.server.level.ServerChunkCache$MainThreadExecutor
|
||||
public net.minecraft.server.level.ServerLevel chunkSource
|
||||
public net.minecraft.server.level.ServerLevel entityManager
|
||||
public net.minecraft.server.level.ServerLevel findLightningRod(Lnet/minecraft/core/BlockPos;)Ljava/util/Optional;
|
||||
public net.minecraft.server.level.ServerLevel getEntities()Lnet/minecraft/world/level/entity/LevelEntityGetter;
|
||||
public net.minecraft.server.level.ServerLevel serverLevelData
|
||||
public net.minecraft.server.level.ServerPlayer completeUsingItem()V
|
||||
public net.minecraft.server.level.ServerPlayer containerSynchronizer
|
||||
public net.minecraft.server.level.ServerPlayer findRespawnAndUseSpawnBlock(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;FZZ)Ljava/util/Optional;
|
||||
public net.minecraft.server.level.ServerPlayer findRespawnAndUseSpawnBlock(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/server/level/ServerPlayer$RespawnConfig;Z)Ljava/util/Optional;
|
||||
public net.minecraft.server.level.ServerPlayer initMenu(Lnet/minecraft/world/inventory/AbstractContainerMenu;)V
|
||||
public net.minecraft.server.level.ServerPlayer isChangingDimension
|
||||
public net.minecraft.server.level.ServerPlayer language
|
||||
public net.minecraft.server.level.ServerPlayer lastSentExp
|
||||
public net.minecraft.server.level.ServerPlayer nextContainerCounter()V
|
||||
public net.minecraft.server.level.ServerPlayer particleStatus
|
||||
public net.minecraft.server.level.ServerPlayer seenCredits
|
||||
public net.minecraft.server.level.ServerPlayer setShoulderEntityLeft(Lnet/minecraft/nbt/CompoundTag;)V
|
||||
public net.minecraft.server.level.ServerPlayer setShoulderEntityRight(Lnet/minecraft/nbt/CompoundTag;)V
|
||||
public net.minecraft.server.level.ServerPlayer triggerDimensionChangeTriggers(Lnet/minecraft/server/level/ServerLevel;)V
|
||||
public net.minecraft.server.level.ServerPlayer wardenSpawnTracker
|
||||
public net.minecraft.server.level.ServerPlayer$RespawnPosAngle
|
||||
public net.minecraft.server.level.ServerPlayerGameMode level
|
||||
public net.minecraft.server.level.Ticket key
|
||||
public net.minecraft.server.level.ServerPlayer$RespawnPosAngle <init>(Lnet/minecraft/world/phys/Vec3;FF)V
|
||||
public net.minecraft.server.level.ServerPlayerGameMode hasDelayedDestroy
|
||||
public net.minecraft.server.network.ServerCommandSuggestionsProvider limitSuggestionCount(Lcom/mojang/brigadier/suggestion/Suggestions;)Lcom/mojang/brigadier/suggestion/Suggestions;
|
||||
public net.minecraft.server.network.ServerConfigurationPacketListenerImpl clientInformation
|
||||
public net.minecraft.server.network.ServerConfigurationPacketListenerImpl currentTask
|
||||
public net.minecraft.server.network.ServerConfigurationPacketListenerImpl finishCurrentTask(Lnet/minecraft/server/network/ConfigurationTask$Type;)V
|
||||
public net.minecraft.server.network.ServerGamePacketListenerImpl isChatMessageIllegal(Ljava/lang/String;)Z
|
||||
public net.minecraft.server.network.ServerGamePacketListenerImpl restartClientLoadTimerAfterRespawn()V
|
||||
public net.minecraft.server.network.ServerLoginPacketListenerImpl authenticatedProfile
|
||||
public net.minecraft.server.network.ServerLoginPacketListenerImpl connection
|
||||
public net.minecraft.server.network.ServerLoginPacketListenerImpl state
|
||||
public net.minecraft.server.network.ServerLoginPacketListenerImpl$State
|
||||
public net.minecraft.server.packs.VanillaPackResourcesBuilder safeGetPath(Ljava/net/URI;)Ljava/nio/file/Path;
|
||||
public net.minecraft.server.packs.repository.FolderRepositorySource$FolderPackDetector
|
||||
public net.minecraft.server.packs.repository.FolderRepositorySource$FolderPackDetector <init>(Lnet/minecraft/world/level/validation/DirectoryValidator;)V
|
||||
public net.minecraft.server.packs.repository.Pack resources
|
||||
public net.minecraft.server.players.PlayerList playerIo
|
||||
public net.minecraft.server.players.PlayerList players
|
||||
public net.minecraft.server.players.PlayerList updateEntireScoreboard(Lnet/minecraft/server/ServerScoreboard;Lnet/minecraft/server/level/ServerPlayer;)V
|
||||
public net.minecraft.server.players.StoredUserEntry getUser()Ljava/lang/Object;
|
||||
public net.minecraft.server.players.PlayerList verifyChatTrusted(Lnet/minecraft/network/chat/PlayerChatMessage;)Z
|
||||
public net.minecraft.stats.ServerRecipeBook known
|
||||
public net.minecraft.tags.TagEntry id
|
||||
public net.minecraft.tags.TagEntry required
|
||||
public net.minecraft.tags.TagEntry tag
|
||||
public net.minecraft.util.datafix.fixes.BlockStateData register(ILjava/lang/String;[Ljava/lang/String;)V
|
||||
public net.minecraft.util.Util onThreadException(Ljava/lang/Thread;Ljava/lang/Throwable;)V
|
||||
public net.minecraft.util.datafix.fixes.BlockStateData register(ILcom/mojang/serialization/Dynamic;[Lcom/mojang/serialization/Dynamic;)V
|
||||
public net.minecraft.util.datafix.fixes.ItemIdFix ITEM_NAMES
|
||||
public net.minecraft.util.datafix.fixes.ItemSpawnEggFix ID_TO_ENTITY
|
||||
public net.minecraft.util.filefix.FileFixerUpper FILE_FIXER_INTRODUCTION_VERSION
|
||||
public net.minecraft.world.BossEvent color
|
||||
public net.minecraft.world.BossEvent name
|
||||
public net.minecraft.world.BossEvent overlay
|
||||
public net.minecraft.world.CompoundContainer container1
|
||||
public net.minecraft.world.CompoundContainer container2
|
||||
public net.minecraft.world.SimpleContainer items
|
||||
public net.minecraft.world.damagesource.CombatTracker entries
|
||||
public net.minecraft.world.damagesource.CombatTracker getMostSignificantFall()Lnet/minecraft/world/damagesource/CombatEntry;
|
||||
public net.minecraft.world.damagesource.CombatTracker inCombat
|
||||
public net.minecraft.world.damagesource.CombatTracker lastDamageTime
|
||||
public net.minecraft.world.damagesource.CombatTracker mob
|
||||
public net.minecraft.world.damagesource.CombatTracker takingDamage
|
||||
public net.minecraft.world.damagesource.DamageSource <init>(Lnet/minecraft/core/Holder;Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/phys/Vec3;)V
|
||||
public net.minecraft.world.effect.MobEffect attributeModifiers
|
||||
public net.minecraft.world.effect.MobEffect$AttributeTemplate
|
||||
public net.minecraft.world.effect.MobEffect$AttributeTemplate <init>(Lnet/minecraft/resources/Identifier;DLnet/minecraft/world/entity/ai/attributes/AttributeModifier$Operation;)V
|
||||
public net.minecraft.world.effect.MobEffectInstance hiddenEffect
|
||||
public net.minecraft.world.entity.AreaEffectCloud durationOnUse
|
||||
public net.minecraft.world.entity.AreaEffectCloud ownerUUID
|
||||
public net.minecraft.world.entity.AreaEffectCloud potionContents
|
||||
public net.minecraft.world.entity.AreaEffectCloud radiusOnUse
|
||||
public net.minecraft.world.entity.AreaEffectCloud radiusPerTick
|
||||
public net.minecraft.world.effect.MobEffectInstance isShorterDurationThan(Lnet/minecraft/world/effect/MobEffectInstance;)Z
|
||||
public net.minecraft.world.entity.AgeableMob setAgeLocked(Z)V
|
||||
public net.minecraft.world.entity.AreaEffectCloud owner
|
||||
public net.minecraft.world.entity.AreaEffectCloud reapplicationDelay
|
||||
public net.minecraft.world.entity.AreaEffectCloud updateColor()V
|
||||
public net.minecraft.world.entity.AreaEffectCloud waitTime
|
||||
public net.minecraft.world.entity.Avatar DATA_PLAYER_MODE_CUSTOMISATION
|
||||
public net.minecraft.world.entity.ConversionTracker afflictionTime
|
||||
public net.minecraft.world.entity.ConversionTracker conversionTime
|
||||
public net.minecraft.world.entity.ConversionTracker setConverting(Z)V
|
||||
public net.minecraft.world.entity.Display DATA_POS_ROT_INTERPOLATION_DURATION_ID
|
||||
public net.minecraft.world.entity.Display createTransformation(Lnet/minecraft/network/syncher/SynchedEntityData;)Lcom/mojang/math/Transformation;
|
||||
public net.minecraft.world.entity.Display getBillboardConstraints()Lnet/minecraft/world/entity/Display$BillboardConstraints;
|
||||
@@ -181,26 +166,26 @@ public net.minecraft.world.entity.Display$TextDisplay getTextOpacity()B
|
||||
public net.minecraft.world.entity.Display$TextDisplay setFlags(B)V
|
||||
public net.minecraft.world.entity.Display$TextDisplay setText(Lnet/minecraft/network/chat/Component;)V
|
||||
public net.minecraft.world.entity.Display$TextDisplay setTextOpacity(B)V
|
||||
public net.minecraft.world.entity.Entity DATA_TICKS_FROZEN
|
||||
public net.minecraft.world.entity.Entity FLAG_INVISIBLE
|
||||
public net.minecraft.world.entity.Entity getAirDrag()F
|
||||
public net.minecraft.world.entity.Entity getDefaultGravity()D
|
||||
public net.minecraft.world.entity.Entity getEncodeId()Ljava/lang/String;
|
||||
public net.minecraft.world.entity.Entity getFireImmuneTicks()I
|
||||
public net.minecraft.world.entity.Entity getSharedFlag(I)Z
|
||||
public net.minecraft.world.entity.Entity hasVisualFire
|
||||
public net.minecraft.world.entity.Entity isInBubbleColumn()Z
|
||||
public net.minecraft.world.entity.Entity getSwimHighSpeedSplashSound()Lnet/minecraft/sounds/SoundEvent;
|
||||
public net.minecraft.world.entity.Entity getSwimSound()Lnet/minecraft/sounds/SoundEvent;
|
||||
public net.minecraft.world.entity.Entity getSwimSplashSound()Lnet/minecraft/sounds/SoundEvent;
|
||||
public net.minecraft.world.entity.Entity isInRain()Z
|
||||
public net.minecraft.world.entity.Entity isInvulnerableToBase(Lnet/minecraft/world/damagesource/DamageSource;)Z
|
||||
public net.minecraft.world.entity.Entity onGround
|
||||
public net.minecraft.world.entity.Entity passengers
|
||||
public net.minecraft.world.entity.Entity portalCooldown
|
||||
public net.minecraft.world.entity.Entity random
|
||||
public net.minecraft.world.entity.Entity setLevel(Lnet/minecraft/world/level/Level;)V
|
||||
public net.minecraft.world.entity.Entity setRot(FF)V
|
||||
public net.minecraft.world.entity.Entity setSharedFlag(IZ)V
|
||||
public net.minecraft.world.entity.Entity unsetRemoved()V
|
||||
public net.minecraft.world.entity.Entity wasTouchingWater
|
||||
public net.minecraft.world.entity.ExperienceOrb count
|
||||
public net.minecraft.world.entity.ExperienceOrb value
|
||||
public net.minecraft.world.entity.GlowSquid setDarkTicks(I)V
|
||||
public net.minecraft.world.entity.ExperienceOrb setValue(I)V
|
||||
public net.minecraft.world.entity.Interaction attack
|
||||
public net.minecraft.world.entity.Interaction getHeight()F
|
||||
public net.minecraft.world.entity.Interaction getResponse()Z
|
||||
@@ -210,119 +195,138 @@ public net.minecraft.world.entity.Interaction setHeight(F)V
|
||||
public net.minecraft.world.entity.Interaction setResponse(Z)V
|
||||
public net.minecraft.world.entity.Interaction setWidth(F)V
|
||||
public net.minecraft.world.entity.Interaction$PlayerAction
|
||||
public net.minecraft.world.entity.Interaction$PlayerAction <init>(Ljava/util/UUID;J)V
|
||||
public net.minecraft.world.entity.ItemBasedSteering boostTime
|
||||
public net.minecraft.world.entity.ItemBasedSteering boostTimeTotal()I
|
||||
public net.minecraft.world.entity.ItemBasedSteering boosting
|
||||
public net.minecraft.world.entity.LightningBolt flashes
|
||||
public net.minecraft.world.entity.LightningBolt life
|
||||
public net.minecraft.world.entity.LightningBolt visualOnly
|
||||
public net.minecraft.world.entity.LivingEntity DATA_ARROW_COUNT_ID
|
||||
public net.minecraft.world.entity.LivingEntity DATA_HEALTH_ID
|
||||
public net.minecraft.world.entity.LivingEntity LIVING_ENTITY_FLAG_SPIN_ATTACK
|
||||
public net.minecraft.world.entity.LivingEntity activeEffects
|
||||
public net.minecraft.world.entity.LivingEntity completeUsingItem()V
|
||||
public net.minecraft.world.entity.LivingEntity detectEquipmentUpdates()V
|
||||
public net.minecraft.world.entity.LivingEntity effectsDirty
|
||||
public net.minecraft.world.entity.LivingEntity entityEventForEquipmentBreak(Lnet/minecraft/world/entity/EquipmentSlot;)B
|
||||
public net.minecraft.world.entity.LivingEntity getDeathSound()Lnet/minecraft/sounds/SoundEvent;
|
||||
public net.minecraft.world.entity.LivingEntity getFallDamageSound(I)Lnet/minecraft/sounds/SoundEvent;
|
||||
public net.minecraft.world.entity.LivingEntity getHurtSound(Lnet/minecraft/world/damagesource/DamageSource;)Lnet/minecraft/sounds/SoundEvent;
|
||||
public net.minecraft.world.entity.LivingEntity getSoundVolume()F
|
||||
public net.minecraft.world.entity.LivingEntity jumping
|
||||
public net.minecraft.world.entity.LivingEntity lastHurt
|
||||
public net.minecraft.world.entity.LivingEntity lastHurtByMob
|
||||
public net.minecraft.world.entity.LivingEntity lastHurtByMobTimestamp
|
||||
public net.minecraft.world.entity.LivingEntity lastHurtByPlayer
|
||||
public net.minecraft.world.entity.LivingEntity lastHurtByPlayerTime
|
||||
public net.minecraft.world.entity.LivingEntity lastHurtByPlayerMemoryTime
|
||||
public net.minecraft.world.entity.LivingEntity playSecondaryHurtSound(Lnet/minecraft/world/damagesource/DamageSource;)V
|
||||
public net.minecraft.world.entity.LivingEntity setLivingEntityFlag(IZ)V
|
||||
public net.minecraft.world.entity.LivingEntity useItemRemaining
|
||||
public net.minecraft.world.entity.Mob armorDropChances
|
||||
public net.minecraft.world.entity.Mob getEquipmentDropChance(Lnet/minecraft/world/entity/EquipmentSlot;)F
|
||||
public net.minecraft.world.entity.Mob handDropChances
|
||||
public net.minecraft.world.entity.Mob getAmbientSound()Lnet/minecraft/sounds/SoundEvent;
|
||||
public net.minecraft.world.entity.Mob isSunBurnTick()Z
|
||||
public net.minecraft.world.entity.Mob lootTable
|
||||
public net.minecraft.world.entity.Mob lootTableSeed
|
||||
public net.minecraft.world.entity.Mob persistenceRequired
|
||||
public net.minecraft.world.entity.OminousItemSpawner setItem(Lnet/minecraft/world/item/ItemStack;)V
|
||||
public net.minecraft.world.entity.OminousItemSpawner spawnItemAfterTicks
|
||||
public net.minecraft.world.entity.ai.attributes.Attribute sentiment
|
||||
public net.minecraft.world.entity.ai.attributes.AttributeSupplier getAttributeInstance(Lnet/minecraft/core/Holder;)Lnet/minecraft/world/entity/ai/attributes/AttributeInstance;
|
||||
public net.minecraft.world.entity.ai.control.MoveControl$Operation
|
||||
public net.minecraft.world.entity.ai.gossip.GossipContainer gossips
|
||||
public net.minecraft.world.entity.ai.gossip.GossipContainer$EntityGossips
|
||||
public net.minecraft.world.entity.ai.gossip.GossipContainer$EntityGossips <init>()V
|
||||
public net.minecraft.world.entity.ai.navigation.PathNavigation pathFinder
|
||||
public net.minecraft.world.entity.ambient.Bat targetPosition
|
||||
public net.minecraft.world.entity.animal.AbstractSchoolingFish leader
|
||||
public net.minecraft.world.entity.animal.AbstractSchoolingFish schoolSize
|
||||
public net.minecraft.world.entity.animal.Animal inLove
|
||||
public net.minecraft.world.entity.animal.Animal loveCause
|
||||
public net.minecraft.world.entity.animal.Bee hivePos
|
||||
public net.minecraft.world.entity.animal.Bee isRolling()Z
|
||||
public net.minecraft.world.entity.animal.Bee numCropsGrownSincePollination
|
||||
public net.minecraft.world.entity.animal.Bee setHasNectar(Z)V
|
||||
public net.minecraft.world.entity.animal.Bee setHasStung(Z)V
|
||||
public net.minecraft.world.entity.animal.Bee setRolling(Z)V
|
||||
public net.minecraft.world.entity.animal.Bee stayOutOfHiveCountdown
|
||||
public net.minecraft.world.entity.animal.Bee ticksWithoutNectarSinceExitingHive
|
||||
public net.minecraft.world.entity.animal.Cat isRelaxStateOne()Z
|
||||
public net.minecraft.world.entity.animal.Cat setCollarColor(Lnet/minecraft/world/item/DyeColor;)V
|
||||
public net.minecraft.world.entity.animal.Cat setRelaxStateOne(Z)V
|
||||
public net.minecraft.world.entity.animal.Fox DATA_TRUSTED_ID_0
|
||||
public net.minecraft.world.entity.animal.Fox DATA_TRUSTED_ID_1
|
||||
public net.minecraft.world.entity.animal.Fox isDefending()Z
|
||||
public net.minecraft.world.entity.animal.Fox setDefending(Z)V
|
||||
public net.minecraft.world.entity.animal.Fox setFaceplanted(Z)V
|
||||
public net.minecraft.world.entity.animal.Fox setSleeping(Z)V
|
||||
public net.minecraft.world.entity.animal.MushroomCow stewEffects
|
||||
public net.minecraft.world.entity.animal.Ocelot isTrusting()Z
|
||||
public net.minecraft.world.entity.animal.Ocelot setTrusting(Z)V
|
||||
public net.minecraft.world.entity.animal.Panda getEatCounter()I
|
||||
public net.minecraft.world.entity.animal.Panda setEatCounter(I)V
|
||||
public net.minecraft.world.entity.animal.Pig steering
|
||||
public net.minecraft.world.entity.animal.Rabbit moreCarrotTicks
|
||||
public net.minecraft.world.entity.animal.Rabbit registerGoals()V
|
||||
public net.minecraft.world.entity.animal.TropicalFish getPackedVariant()I
|
||||
public net.minecraft.world.entity.animal.TropicalFish setPackedVariant(I)V
|
||||
public net.minecraft.world.entity.animal.Turtle getHomePos()Lnet/minecraft/core/BlockPos;
|
||||
public net.minecraft.world.entity.animal.Turtle isGoingHome()Z
|
||||
public net.minecraft.world.entity.animal.Turtle isTravelling()Z
|
||||
public net.minecraft.world.entity.animal.Turtle setGoingHome(Z)V
|
||||
public net.minecraft.world.entity.animal.Turtle setHasEgg(Z)V
|
||||
public net.minecraft.world.entity.animal.Turtle setTravelling(Z)V
|
||||
public net.minecraft.world.entity.animal.Wolf isWet
|
||||
public net.minecraft.world.entity.animal.Wolf setCollarColor(Lnet/minecraft/world/item/DyeColor;)V
|
||||
public net.minecraft.world.entity.animal.allay.Allay canDuplicate()Z
|
||||
public net.minecraft.world.entity.animal.allay.Allay duplicateAllay()V
|
||||
public net.minecraft.world.entity.animal.allay.Allay duplicationCooldown
|
||||
public net.minecraft.world.entity.animal.allay.Allay jukeboxPos
|
||||
public net.minecraft.world.entity.animal.allay.Allay resetDuplicationCooldown()V
|
||||
public net.minecraft.world.entity.animal.axolotl.Axolotl setVariant(Lnet/minecraft/world/entity/animal/axolotl/Axolotl$Variant;)V
|
||||
public net.minecraft.world.entity.animal.bee.Bee isRolling()Z
|
||||
public net.minecraft.world.entity.animal.bee.Bee numCropsGrownSincePollination
|
||||
public net.minecraft.world.entity.animal.bee.Bee setHasNectar(Z)V
|
||||
public net.minecraft.world.entity.animal.bee.Bee setHasStung(Z)V
|
||||
public net.minecraft.world.entity.animal.bee.Bee setRolling(Z)V
|
||||
public net.minecraft.world.entity.animal.bee.Bee stayOutOfHiveCountdown
|
||||
public net.minecraft.world.entity.animal.bee.Bee ticksWithoutNectarSinceExitingHive
|
||||
public net.minecraft.world.entity.animal.bee.Bee timeSinceSting
|
||||
public net.minecraft.world.entity.animal.chicken.Chicken getSoundVariant()Lnet/minecraft/core/Holder;
|
||||
public net.minecraft.world.entity.animal.chicken.Chicken setSoundVariant(Lnet/minecraft/core/Holder;)V
|
||||
public net.minecraft.world.entity.animal.cow.Cow getSoundVariant()Lnet/minecraft/core/Holder;
|
||||
public net.minecraft.world.entity.animal.cow.Cow setSoundVariant(Lnet/minecraft/core/Holder;)V
|
||||
public net.minecraft.world.entity.animal.cow.MushroomCow setVariant(Lnet/minecraft/world/entity/animal/cow/MushroomCow$Variant;)V
|
||||
public net.minecraft.world.entity.animal.cow.MushroomCow stewEffects
|
||||
public net.minecraft.world.entity.animal.dolphin.Dolphin treasurePos
|
||||
public net.minecraft.world.entity.animal.equine.AbstractHorse createInventory()V
|
||||
public net.minecraft.world.entity.animal.equine.AbstractHorse inventory
|
||||
public net.minecraft.world.entity.animal.equine.AbstractHorse owner
|
||||
public net.minecraft.world.entity.animal.equine.Horse setVariantAndMarkings(Lnet/minecraft/world/entity/animal/equine/Variant;Lnet/minecraft/world/entity/animal/equine/Markings;)V
|
||||
public net.minecraft.world.entity.animal.equine.Llama setVariant(Lnet/minecraft/world/entity/animal/equine/Llama$Variant;)V
|
||||
public net.minecraft.world.entity.animal.equine.SkeletonHorse trapTime
|
||||
public net.minecraft.world.entity.animal.feline.Cat getSoundVariant()Lnet/minecraft/core/Holder;
|
||||
public net.minecraft.world.entity.animal.feline.Cat isRelaxStateOne()Z
|
||||
public net.minecraft.world.entity.animal.feline.Cat setCollarColor(Lnet/minecraft/world/item/DyeColor;)V
|
||||
public net.minecraft.world.entity.animal.feline.Cat setRelaxStateOne(Z)V
|
||||
public net.minecraft.world.entity.animal.feline.Cat setSoundVariant(Lnet/minecraft/core/Holder;)V
|
||||
public net.minecraft.world.entity.animal.feline.Cat setVariant(Lnet/minecraft/core/Holder;)V
|
||||
public net.minecraft.world.entity.animal.feline.Ocelot isTrusting()Z
|
||||
public net.minecraft.world.entity.animal.feline.Ocelot setTrusting(Z)V
|
||||
public net.minecraft.world.entity.animal.fish.AbstractSchoolingFish leader
|
||||
public net.minecraft.world.entity.animal.fish.AbstractSchoolingFish schoolSize
|
||||
public net.minecraft.world.entity.animal.fish.Salmon setVariant(Lnet/minecraft/world/entity/animal/fish/Salmon$Variant;)V
|
||||
public net.minecraft.world.entity.animal.fish.TropicalFish getPackedVariant()I
|
||||
public net.minecraft.world.entity.animal.fish.TropicalFish setPackedVariant(I)V
|
||||
public net.minecraft.world.entity.animal.fox.Fox DATA_TRUSTED_ID_0
|
||||
public net.minecraft.world.entity.animal.fox.Fox DATA_TRUSTED_ID_1
|
||||
public net.minecraft.world.entity.animal.fox.Fox isDefending()Z
|
||||
public net.minecraft.world.entity.animal.fox.Fox setDefending(Z)V
|
||||
public net.minecraft.world.entity.animal.fox.Fox setFaceplanted(Z)V
|
||||
public net.minecraft.world.entity.animal.fox.Fox setSleeping(Z)V
|
||||
public net.minecraft.world.entity.animal.fox.Fox setVariant(Lnet/minecraft/world/entity/animal/fox/Fox$Variant;)V
|
||||
public net.minecraft.world.entity.animal.frog.Frog setVariant(Lnet/minecraft/core/Holder;)V
|
||||
public net.minecraft.world.entity.animal.frog.Tadpole age
|
||||
public net.minecraft.world.entity.animal.goat.Goat DATA_HAS_LEFT_HORN
|
||||
public net.minecraft.world.entity.animal.goat.Goat DATA_HAS_RIGHT_HORN
|
||||
public net.minecraft.world.entity.animal.horse.AbstractHorse createInventory()V
|
||||
public net.minecraft.world.entity.animal.horse.AbstractHorse inventory
|
||||
public net.minecraft.world.entity.animal.horse.Horse setVariantAndMarkings(Lnet/minecraft/world/entity/animal/horse/Variant;Lnet/minecraft/world/entity/animal/horse/Markings;)V
|
||||
public net.minecraft.world.entity.animal.horse.SkeletonHorse trapTime
|
||||
public net.minecraft.world.entity.animal.nautilus.AbstractNautilus inventory
|
||||
public net.minecraft.world.entity.animal.panda.Panda getEatCounter()I
|
||||
public net.minecraft.world.entity.animal.panda.Panda setEatCounter(I)V
|
||||
public net.minecraft.world.entity.animal.parrot.Parrot setVariant(Lnet/minecraft/world/entity/animal/parrot/Parrot$Variant;)V
|
||||
public net.minecraft.world.entity.animal.pig.Pig getSoundVariant()Lnet/minecraft/core/Holder;
|
||||
public net.minecraft.world.entity.animal.pig.Pig setSoundVariant(Lnet/minecraft/core/Holder;)V
|
||||
public net.minecraft.world.entity.animal.pig.Pig setVariant(Lnet/minecraft/core/Holder;)V
|
||||
public net.minecraft.world.entity.animal.pig.Pig steering
|
||||
public net.minecraft.world.entity.animal.rabbit.Rabbit moreCarrotTicks
|
||||
public net.minecraft.world.entity.animal.rabbit.Rabbit setVariant(Lnet/minecraft/world/entity/animal/rabbit/Rabbit$Variant;)V
|
||||
public net.minecraft.world.entity.animal.sniffer.Sniffer calculateDigPosition()Ljava/util/Optional;
|
||||
public net.minecraft.world.entity.animal.sniffer.Sniffer canDig()Z
|
||||
public net.minecraft.world.entity.animal.sniffer.Sniffer getExploredPositions()Ljava/util/stream/Stream;
|
||||
public net.minecraft.world.entity.animal.sniffer.Sniffer getState()Lnet/minecraft/world/entity/animal/sniffer/Sniffer$State;
|
||||
public net.minecraft.world.entity.animal.sniffer.Sniffer storeExploredPosition(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/entity/animal/sniffer/Sniffer;
|
||||
public net.minecraft.world.entity.boss.enderdragon.EnderDragon subEntities
|
||||
public net.minecraft.world.entity.animal.squid.GlowSquid setDarkTicks(I)V
|
||||
public net.minecraft.world.entity.animal.turtle.Turtle goingHome
|
||||
public net.minecraft.world.entity.animal.turtle.Turtle setHasEgg(Z)V
|
||||
public net.minecraft.world.entity.animal.wolf.Wolf getSoundVariant()Lnet/minecraft/core/Holder;
|
||||
public net.minecraft.world.entity.animal.wolf.Wolf getVariant()Lnet/minecraft/core/Holder;
|
||||
public net.minecraft.world.entity.animal.wolf.Wolf isWet
|
||||
public net.minecraft.world.entity.animal.wolf.Wolf setCollarColor(Lnet/minecraft/world/item/DyeColor;)V
|
||||
public net.minecraft.world.entity.animal.wolf.Wolf setSoundVariant(Lnet/minecraft/core/Holder;)V
|
||||
public net.minecraft.world.entity.animal.wolf.Wolf setVariant(Lnet/minecraft/core/Holder;)V
|
||||
public net.minecraft.world.entity.boss.wither.WitherBoss bossEvent
|
||||
public net.minecraft.world.entity.decoration.ArmorStand bodyPose
|
||||
public net.minecraft.world.entity.decoration.ArmorStand disabledSlots
|
||||
public net.minecraft.world.entity.decoration.ArmorStand headPose
|
||||
public net.minecraft.world.entity.decoration.ArmorStand isDisabled(Lnet/minecraft/world/entity/EquipmentSlot;)Z
|
||||
public net.minecraft.world.entity.decoration.ArmorStand leftArmPose
|
||||
public net.minecraft.world.entity.decoration.ArmorStand leftLegPose
|
||||
public net.minecraft.world.entity.decoration.ArmorStand rightArmPose
|
||||
public net.minecraft.world.entity.decoration.ArmorStand rightLegPose
|
||||
public net.minecraft.world.entity.decoration.ArmorStand setMarker(Z)V
|
||||
public net.minecraft.world.entity.decoration.ArmorStand setSmall(Z)V
|
||||
public net.minecraft.world.entity.decoration.HangingEntity setDirection(Lnet/minecraft/core/Direction;)V
|
||||
public net.minecraft.world.entity.decoration.ItemFrame DATA_ITEM
|
||||
public net.minecraft.world.entity.decoration.ItemFrame DATA_ROTATION
|
||||
public net.minecraft.world.entity.decoration.ItemFrame dropChance
|
||||
public net.minecraft.world.entity.decoration.ItemFrame fixed
|
||||
public net.minecraft.world.entity.decoration.ItemFrame setDirection(Lnet/minecraft/core/Direction;)V
|
||||
public net.minecraft.world.entity.decoration.Mannequin ALL_LAYERS
|
||||
public net.minecraft.world.entity.decoration.Mannequin DEFAULT_DESCRIPTION
|
||||
public net.minecraft.world.entity.decoration.Mannequin VALID_POSES
|
||||
public net.minecraft.world.entity.decoration.Mannequin getDescription()Lnet/minecraft/network/chat/Component;
|
||||
public net.minecraft.world.entity.decoration.Mannequin getImmovable()Z
|
||||
public net.minecraft.world.entity.decoration.Mannequin setDescription(Lnet/minecraft/network/chat/Component;)V
|
||||
public net.minecraft.world.entity.decoration.Mannequin setHideDescription(Z)V
|
||||
public net.minecraft.world.entity.decoration.Mannequin setImmovable(Z)V
|
||||
public net.minecraft.world.entity.decoration.Mannequin setProfile(Lnet/minecraft/world/item/component/ResolvableProfile;)V
|
||||
public net.minecraft.world.entity.decoration.painting.Painting setVariant(Lnet/minecraft/core/Holder;)V
|
||||
public net.minecraft.world.entity.item.FallingBlockEntity <init>(Lnet/minecraft/world/level/Level;DDDLnet/minecraft/world/level/block/state/BlockState;)V
|
||||
public net.minecraft.world.entity.item.FallingBlockEntity blockState
|
||||
public net.minecraft.world.entity.item.FallingBlockEntity cancelDrop
|
||||
@@ -340,19 +344,14 @@ public net.minecraft.world.entity.monster.Creeper explodeCreeper()V
|
||||
public net.minecraft.world.entity.monster.Creeper explosionRadius
|
||||
public net.minecraft.world.entity.monster.Creeper maxSwell
|
||||
public net.minecraft.world.entity.monster.Creeper swell
|
||||
public net.minecraft.world.entity.monster.Drowned groundNavigation
|
||||
public net.minecraft.world.entity.monster.Drowned waterNavigation
|
||||
public net.minecraft.world.entity.monster.EnderMan teleport()Z
|
||||
public net.minecraft.world.entity.monster.EnderMan teleportTowards(Lnet/minecraft/world/entity/Entity;)Z
|
||||
public net.minecraft.world.entity.monster.Enderman teleport()Z
|
||||
public net.minecraft.world.entity.monster.Enderman teleportTowards(Lnet/minecraft/world/entity/Entity;)Z
|
||||
public net.minecraft.world.entity.monster.Endermite life
|
||||
public net.minecraft.world.entity.monster.Evoker getWololoTarget()Lnet/minecraft/world/entity/animal/Sheep;
|
||||
public net.minecraft.world.entity.monster.Evoker setWololoTarget(Lnet/minecraft/world/entity/animal/Sheep;)V
|
||||
public net.minecraft.world.entity.monster.Guardian randomStrollGoal
|
||||
public net.minecraft.world.entity.monster.Guardian setActiveAttackTarget(I)V
|
||||
public net.minecraft.world.entity.monster.Guardian$GuardianAttackGoal
|
||||
public net.minecraft.world.entity.monster.Guardian$GuardianAttackGoal attackTime
|
||||
public net.minecraft.world.entity.monster.Phantom anchorPoint
|
||||
public net.minecraft.world.entity.monster.Pillager inventory
|
||||
public net.minecraft.world.entity.monster.Ravager attackTick
|
||||
public net.minecraft.world.entity.monster.Ravager roarTick
|
||||
public net.minecraft.world.entity.monster.Ravager stunnedTick
|
||||
@@ -360,64 +359,53 @@ public net.minecraft.world.entity.monster.Shulker DATA_COLOR_ID
|
||||
public net.minecraft.world.entity.monster.Shulker getRawPeekAmount()I
|
||||
public net.minecraft.world.entity.monster.Shulker setAttachFace(Lnet/minecraft/core/Direction;)V
|
||||
public net.minecraft.world.entity.monster.Shulker setRawPeekAmount(I)V
|
||||
public net.minecraft.world.entity.monster.Skeleton DATA_STRAY_CONVERSION_ID
|
||||
public net.minecraft.world.entity.monster.Skeleton conversionTime
|
||||
public net.minecraft.world.entity.monster.Skeleton inPowderSnowTime
|
||||
public net.minecraft.world.entity.monster.SpellcasterIllager getCurrentSpell()Lnet/minecraft/world/entity/monster/SpellcasterIllager$IllagerSpell;
|
||||
public net.minecraft.world.entity.monster.SpellcasterIllager$IllagerSpell
|
||||
public net.minecraft.world.entity.monster.Strider steering
|
||||
public net.minecraft.world.entity.monster.Vex hasLimitedLife
|
||||
public net.minecraft.world.entity.monster.Vex limitedLifeTicks
|
||||
public net.minecraft.world.entity.monster.Vindicator DOOR_BREAKING_PREDICATE
|
||||
public net.minecraft.world.entity.monster.Vindicator isJohnny
|
||||
public net.minecraft.world.entity.monster.Vex owner
|
||||
public net.minecraft.world.entity.monster.Witch usingTime
|
||||
public net.minecraft.world.entity.monster.Zombie DATA_DROWNED_CONVERSION_ID
|
||||
public net.minecraft.world.entity.monster.Zombie DOOR_BREAKING_PREDICATE
|
||||
public net.minecraft.world.entity.monster.Zombie conversionTime
|
||||
public net.minecraft.world.entity.monster.Zombie isSunSensitive()Z
|
||||
public net.minecraft.world.entity.monster.Zombie startUnderWaterConversion(I)V
|
||||
public net.minecraft.world.entity.monster.ZombieVillager DATA_CONVERTING_ID
|
||||
public net.minecraft.world.entity.monster.ZombieVillager conversionStarter
|
||||
public net.minecraft.world.entity.monster.ZombieVillager startConverting(Ljava/util/UUID;I)V
|
||||
public net.minecraft.world.entity.monster.ZombieVillager villagerConversionTime
|
||||
public net.minecraft.world.entity.monster.cubemob.SulfurCube MAX_FUSE
|
||||
public net.minecraft.world.entity.monster.cubemob.SulfurCube setFuse(I)V
|
||||
public net.minecraft.world.entity.monster.hoglin.Hoglin cannotBeHunted
|
||||
public net.minecraft.world.entity.monster.hoglin.Hoglin isImmuneToZombification()Z
|
||||
public net.minecraft.world.entity.monster.hoglin.Hoglin timeInOverworld
|
||||
public net.minecraft.world.entity.monster.illager.Evoker getWololoTarget()Lnet/minecraft/world/entity/animal/sheep/Sheep;
|
||||
public net.minecraft.world.entity.monster.illager.Evoker setWololoTarget(Lnet/minecraft/world/entity/animal/sheep/Sheep;)V
|
||||
public net.minecraft.world.entity.monster.illager.SpellcasterIllager getCurrentSpell()Lnet/minecraft/world/entity/monster/illager/SpellcasterIllager$IllagerSpell;
|
||||
public net.minecraft.world.entity.monster.illager.SpellcasterIllager$IllagerSpell
|
||||
public net.minecraft.world.entity.monster.illager.Vindicator DOOR_BREAKING_PREDICATE
|
||||
public net.minecraft.world.entity.monster.illager.Vindicator isJohnny
|
||||
public net.minecraft.world.entity.monster.piglin.AbstractPiglin isImmuneToZombification()Z
|
||||
public net.minecraft.world.entity.monster.piglin.AbstractPiglin timeInOverworld
|
||||
public net.minecraft.world.entity.monster.piglin.Piglin cannotHunt
|
||||
public net.minecraft.world.entity.monster.piglin.Piglin inventory
|
||||
public net.minecraft.world.entity.monster.piglin.Piglin isChargingCrossbow()Z
|
||||
public net.minecraft.world.entity.monster.skeleton.Skeleton freezingTracker
|
||||
public net.minecraft.world.entity.monster.warden.WardenSpawnTracker cooldownTicks
|
||||
public net.minecraft.world.entity.monster.warden.WardenSpawnTracker increaseWarningLevel()V
|
||||
public net.minecraft.world.entity.monster.warden.WardenSpawnTracker ticksSinceLastWarning
|
||||
public net.minecraft.world.entity.npc.Villager increaseMerchantCareer()V
|
||||
public net.minecraft.world.entity.npc.Villager numberOfRestocksToday
|
||||
public net.minecraft.world.entity.npc.Villager releaseAllPois()V
|
||||
public net.minecraft.world.entity.npc.Villager setUnhappy()V
|
||||
public net.minecraft.world.entity.npc.WanderingTrader getWanderTarget()Lnet/minecraft/core/BlockPos;
|
||||
public net.minecraft.world.entity.player.Abilities flyingSpeed
|
||||
public net.minecraft.world.entity.player.Abilities walkingSpeed
|
||||
public net.minecraft.world.entity.player.Inventory compartments
|
||||
public net.minecraft.world.entity.player.Player DATA_PLAYER_MODE_CUSTOMISATION
|
||||
public net.minecraft.world.entity.monster.zombie.Zombie DOOR_BREAKING_PREDICATE
|
||||
public net.minecraft.world.entity.monster.zombie.Zombie drowningTracker
|
||||
public net.minecraft.world.entity.monster.zombie.Zombie isSunSensitive()Z
|
||||
public net.minecraft.world.entity.monster.zombie.ZombieVillager DATA_CONVERTING_ID
|
||||
public net.minecraft.world.entity.monster.zombie.ZombieVillager conversionStarter
|
||||
public net.minecraft.world.entity.monster.zombie.ZombieVillager villagerConversionTime
|
||||
public net.minecraft.world.entity.npc.villager.Villager numberOfRestocksToday
|
||||
public net.minecraft.world.entity.npc.villager.Villager releaseAllPois()V
|
||||
public net.minecraft.world.entity.npc.villager.Villager setUnhappy()V
|
||||
public net.minecraft.world.entity.npc.villager.Villager updateDemand()V
|
||||
public net.minecraft.world.entity.npc.villager.Villager updateSpecialPrices(Lnet/minecraft/world/entity/player/Player;)V
|
||||
public net.minecraft.world.entity.npc.wanderingtrader.WanderingTrader getWanderTarget()Lnet/minecraft/core/BlockPos;
|
||||
public net.minecraft.world.entity.player.Inventory equipment
|
||||
public net.minecraft.world.entity.player.Player canCriticalAttack(Lnet/minecraft/world/entity/Entity;)Z
|
||||
public net.minecraft.world.entity.player.Player closeContainer()V
|
||||
public net.minecraft.world.entity.player.Player enchantmentSeed
|
||||
public net.minecraft.world.entity.player.Player getFireImmuneTicks()I
|
||||
public net.minecraft.world.entity.player.Player hurtDir
|
||||
public net.minecraft.world.entity.player.Player removeEntitiesOnShoulder()V
|
||||
public net.minecraft.world.entity.player.Player setShoulderEntityLeft(Lnet/minecraft/nbt/CompoundTag;)V
|
||||
public net.minecraft.world.entity.player.Player setShoulderEntityRight(Lnet/minecraft/nbt/CompoundTag;)V
|
||||
public net.minecraft.world.entity.player.Player sleepCounter
|
||||
public net.minecraft.world.entity.projectile.AbstractHurtingProjectile assignDirectionalMovement(Lnet/minecraft/world/phys/Vec3;D)V
|
||||
public net.minecraft.world.entity.projectile.Arrow NO_EFFECT_COLOR
|
||||
public net.minecraft.world.entity.projectile.Arrow getPotionContents()Lnet/minecraft/world/item/alchemy/PotionContents;
|
||||
public net.minecraft.world.entity.projectile.Arrow setPotionContents(Lnet/minecraft/world/item/alchemy/PotionContents;)V
|
||||
public net.minecraft.world.entity.projectile.Arrow updateColor()V
|
||||
public net.minecraft.world.entity.player.Player updatePlayerPose()V
|
||||
public net.minecraft.world.entity.projectile.EvokerFangs warmupDelayTicks
|
||||
public net.minecraft.world.entity.projectile.EyeOfEnder life
|
||||
public net.minecraft.world.entity.projectile.EyeOfEnder surviveAfterDeath
|
||||
public net.minecraft.world.entity.projectile.EyeOfEnder tx
|
||||
public net.minecraft.world.entity.projectile.EyeOfEnder ty
|
||||
public net.minecraft.world.entity.projectile.EyeOfEnder tz
|
||||
public net.minecraft.world.entity.projectile.EyeOfEnder target
|
||||
public net.minecraft.world.entity.projectile.FireworkRocketEntity DATA_ATTACHED_TO_TARGET
|
||||
public net.minecraft.world.entity.projectile.FireworkRocketEntity DATA_ID_FIREWORKS_ITEM
|
||||
public net.minecraft.world.entity.projectile.FireworkRocketEntity DATA_SHOT_AT_ANGLE
|
||||
@@ -425,94 +413,92 @@ public net.minecraft.world.entity.projectile.FireworkRocketEntity attachedToEnti
|
||||
public net.minecraft.world.entity.projectile.FireworkRocketEntity getDefaultItem()Lnet/minecraft/world/item/ItemStack;
|
||||
public net.minecraft.world.entity.projectile.FireworkRocketEntity life
|
||||
public net.minecraft.world.entity.projectile.FireworkRocketEntity lifetime
|
||||
public net.minecraft.world.entity.projectile.FishingHook DATA_HOOKED_ENTITY
|
||||
public net.minecraft.world.entity.projectile.FishingHook calculateOpenWater(Lnet/minecraft/core/BlockPos;)Z
|
||||
public net.minecraft.world.entity.projectile.FishingHook currentState
|
||||
public net.minecraft.world.entity.projectile.FishingHook fishAngle
|
||||
public net.minecraft.world.entity.projectile.FishingHook hookedIn
|
||||
public net.minecraft.world.entity.projectile.FishingHook outOfWaterTime
|
||||
public net.minecraft.world.entity.projectile.FishingHook pullEntity(Lnet/minecraft/world/entity/Entity;)V
|
||||
public net.minecraft.world.entity.projectile.FishingHook setHookedEntity(Lnet/minecraft/world/entity/Entity;)V
|
||||
public net.minecraft.world.entity.projectile.FishingHook timeUntilHooked
|
||||
public net.minecraft.world.entity.projectile.FishingHook timeUntilLured
|
||||
public net.minecraft.world.entity.projectile.FishingHook$FishHookState
|
||||
public net.minecraft.world.entity.projectile.LargeFireball explosionPower
|
||||
public net.minecraft.world.entity.projectile.Projectile cachedOwner
|
||||
public net.minecraft.world.entity.projectile.Projectile hasBeenShot
|
||||
public net.minecraft.world.entity.projectile.Projectile leftOwner
|
||||
public net.minecraft.world.entity.projectile.Projectile ownerUUID
|
||||
public net.minecraft.world.entity.projectile.Projectile owner
|
||||
public net.minecraft.world.entity.projectile.ShulkerBullet currentMoveDirection
|
||||
public net.minecraft.world.entity.projectile.ShulkerBullet flightSteps
|
||||
public net.minecraft.world.entity.projectile.ShulkerBullet targetDeltaX
|
||||
public net.minecraft.world.entity.projectile.ShulkerBullet targetDeltaY
|
||||
public net.minecraft.world.entity.projectile.ShulkerBullet targetDeltaZ
|
||||
public net.minecraft.world.entity.projectile.SpectralArrow duration
|
||||
public net.minecraft.world.entity.projectile.ThrownPotion isLingering()Z
|
||||
public net.minecraft.world.entity.projectile.ThrownTrident dealtDamage
|
||||
public net.minecraft.world.entity.projectile.windcharge.AbstractWindCharge explode(Lnet/minecraft/world/phys/Vec3;)V
|
||||
public net.minecraft.world.entity.projectile.windcharge.BreezeWindCharge explode(Lnet/minecraft/world/phys/Vec3;)V
|
||||
public net.minecraft.world.entity.projectile.windcharge.WindCharge explode(Lnet/minecraft/world/phys/Vec3;)V
|
||||
public net.minecraft.world.entity.projectile.arrow.AbstractArrow baseDamage
|
||||
public net.minecraft.world.entity.projectile.arrow.AbstractArrow firedFromWeapon
|
||||
public net.minecraft.world.entity.projectile.arrow.AbstractArrow getHitGroundSoundEvent()Lnet/minecraft/sounds/SoundEvent;
|
||||
public net.minecraft.world.entity.projectile.arrow.AbstractArrow getPickupItem()Lnet/minecraft/world/item/ItemStack;
|
||||
public net.minecraft.world.entity.projectile.arrow.AbstractArrow isInGround()Z
|
||||
public net.minecraft.world.entity.projectile.arrow.AbstractArrow life
|
||||
public net.minecraft.world.entity.projectile.arrow.AbstractArrow setPickupItemStack(Lnet/minecraft/world/item/ItemStack;)V
|
||||
public net.minecraft.world.entity.projectile.arrow.AbstractArrow setPierceLevel(B)V
|
||||
public net.minecraft.world.entity.projectile.arrow.Arrow NO_EFFECT_COLOR
|
||||
public net.minecraft.world.entity.projectile.arrow.Arrow getPotionContents()Lnet/minecraft/world/item/alchemy/PotionContents;
|
||||
public net.minecraft.world.entity.projectile.arrow.Arrow setPotionContents(Lnet/minecraft/world/item/alchemy/PotionContents;)V
|
||||
public net.minecraft.world.entity.projectile.arrow.SpectralArrow duration
|
||||
public net.minecraft.world.entity.projectile.arrow.ThrownTrident dealtDamage
|
||||
public net.minecraft.world.entity.projectile.hurtingprojectile.AbstractHurtingProjectile assignDirectionalMovement(Lnet/minecraft/world/phys/Vec3;D)V
|
||||
public net.minecraft.world.entity.projectile.hurtingprojectile.LargeFireball explosionPower
|
||||
public net.minecraft.world.entity.projectile.hurtingprojectile.windcharge.AbstractWindCharge explode(Lnet/minecraft/world/phys/Vec3;)V
|
||||
public net.minecraft.world.entity.raid.Raid heroesOfTheVillage
|
||||
public net.minecraft.world.entity.raid.Raid numGroups
|
||||
public net.minecraft.world.entity.raid.Raid raidEvent
|
||||
public net.minecraft.world.entity.raid.Raid raidOmenLevel
|
||||
public net.minecraft.world.entity.raid.Raid ticksActive
|
||||
public net.minecraft.world.entity.raid.Raid totalHealth
|
||||
public net.minecraft.world.entity.raid.Raider$HoldGroundAttackGoal
|
||||
public net.minecraft.world.entity.raid.Raids raidMap
|
||||
public net.minecraft.world.entity.vehicle.AbstractBoat getDropItem()Lnet/minecraft/world/item/Item;
|
||||
public net.minecraft.world.entity.vehicle.AbstractBoat getStatus()Lnet/minecraft/world/entity/vehicle/AbstractBoat$Status;
|
||||
public net.minecraft.world.entity.vehicle.AbstractBoat status
|
||||
public net.minecraft.world.entity.vehicle.AbstractMinecartContainer lootTable
|
||||
public net.minecraft.world.entity.vehicle.AbstractMinecartContainer lootTableSeed
|
||||
public net.minecraft.world.entity.vehicle.MinecartCommandBlock DATA_ID_COMMAND_NAME
|
||||
public net.minecraft.world.entity.vehicle.MinecartFurnace fuel
|
||||
public net.minecraft.world.entity.vehicle.MinecartTNT explode(D)V
|
||||
public net.minecraft.world.entity.vehicle.MinecartTNT explosionPowerBase
|
||||
public net.minecraft.world.entity.vehicle.MinecartTNT explosionSpeedFactor
|
||||
public net.minecraft.world.entity.vehicle.MinecartTNT fuse
|
||||
public net.minecraft.world.flag.FeatureFlag mask
|
||||
public net.minecraft.world.flag.FeatureFlag universe
|
||||
public net.minecraft.world.entity.vehicle.VehicleEntity getDropItem()Lnet/minecraft/world/item/Item;
|
||||
public net.minecraft.world.entity.vehicle.boat.AbstractBoat getStatus()Lnet/minecraft/world/entity/vehicle/boat/AbstractBoat$Status;
|
||||
public net.minecraft.world.entity.vehicle.boat.AbstractBoat status
|
||||
public net.minecraft.world.entity.vehicle.minecart.MinecartCommandBlock DATA_ID_COMMAND_NAME
|
||||
public net.minecraft.world.entity.vehicle.minecart.MinecartFurnace fuel
|
||||
public net.minecraft.world.entity.vehicle.minecart.MinecartTNT explode(Lnet/minecraft/world/damagesource/DamageSource;D)V
|
||||
public net.minecraft.world.entity.vehicle.minecart.MinecartTNT explosionPowerBase
|
||||
public net.minecraft.world.entity.vehicle.minecart.MinecartTNT explosionSpeedFactor
|
||||
public net.minecraft.world.entity.vehicle.minecart.MinecartTNT fuse
|
||||
public net.minecraft.world.flag.FeatureFlagRegistry names
|
||||
public net.minecraft.world.food.FoodData exhaustionLevel
|
||||
public net.minecraft.world.food.FoodData foodLevel
|
||||
public net.minecraft.world.food.FoodData saturationLevel
|
||||
public net.minecraft.world.inventory.AbstractContainerMenu menuType
|
||||
public net.minecraft.world.inventory.AbstractContainerMenu quickcraftSlots
|
||||
public net.minecraft.world.inventory.AbstractContainerMenu quickcraftStatus
|
||||
public net.minecraft.world.inventory.AbstractContainerMenu quickcraftType
|
||||
public net.minecraft.world.inventory.AbstractContainerMenu resetQuickCraft()V
|
||||
public net.minecraft.world.inventory.AbstractContainerMenu synchronizeSlotToRemote(ILnet/minecraft/world/item/ItemStack;Ljava/util/function/Supplier;)V
|
||||
public net.minecraft.world.inventory.AbstractContainerMenu triggerSlotListeners(ILnet/minecraft/world/item/ItemStack;Ljava/util/function/Supplier;)V
|
||||
public net.minecraft.world.inventory.AbstractCraftingMenu craftSlots
|
||||
public net.minecraft.world.inventory.AbstractCraftingMenu resultSlots
|
||||
public net.minecraft.world.inventory.AbstractMountInventoryMenu SLOT_BODY_ARMOR
|
||||
public net.minecraft.world.inventory.AbstractMountInventoryMenu SLOT_INVENTORY_START
|
||||
public net.minecraft.world.inventory.AbstractMountInventoryMenu SLOT_SADDLE
|
||||
public net.minecraft.world.inventory.AbstractMountInventoryMenu mount
|
||||
public net.minecraft.world.inventory.AnvilMenu cost
|
||||
public net.minecraft.world.inventory.AnvilMenu itemName
|
||||
public net.minecraft.world.inventory.AnvilMenu repairItemCountCost
|
||||
public net.minecraft.world.inventory.BrewingStandMenu brewingStandData
|
||||
public net.minecraft.world.inventory.CraftingMenu access
|
||||
public net.minecraft.world.inventory.DispenserMenu dispenser
|
||||
public net.minecraft.world.inventory.HorseInventoryMenu SLOT_BODY_ARMOR
|
||||
public net.minecraft.world.inventory.MerchantContainer selectionHint
|
||||
public net.minecraft.world.inventory.Slot slot
|
||||
public net.minecraft.world.item.AdventureModePredicate predicates
|
||||
public net.minecraft.world.item.BucketItem content
|
||||
public net.minecraft.world.item.CrossbowItem FIREWORK_POWER
|
||||
public net.minecraft.world.item.DebugStickItem handleInteraction(Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;ZLnet/minecraft/world/item/ItemStack;)Z
|
||||
public net.minecraft.world.item.ItemCooldowns cooldowns
|
||||
public net.minecraft.world.item.ItemCooldowns tickCount
|
||||
public net.minecraft.world.item.ItemCooldowns$CooldownInstance
|
||||
public net.minecraft.world.item.DebugStickItem handleInteraction(Lnet/minecraft/server/level/ServerPlayer;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;ZLnet/minecraft/world/item/ItemStack;)Z
|
||||
public net.minecraft.world.item.ItemStackLinkedSet TYPE_AND_TAG
|
||||
public net.minecraft.world.item.JukeboxSongPlayer song
|
||||
public net.minecraft.world.item.MapItem createNewSavedData(Lnet/minecraft/world/level/Level;IIIZZLnet/minecraft/resources/ResourceKey;)Lnet/minecraft/world/level/saveddata/maps/MapId;
|
||||
public net.minecraft.world.item.StandingAndWallBlockItem wallBlock
|
||||
public net.minecraft.world.item.MapItem createNewSavedData(Lnet/minecraft/server/level/ServerLevel;IIIZZLnet/minecraft/resources/ResourceKey;)Lnet/minecraft/world/level/saveddata/maps/MapId;
|
||||
public net.minecraft.world.item.component.ItemContainerContents MAX_SIZE
|
||||
public net.minecraft.world.item.component.ItemContainerContents items
|
||||
public net.minecraft.world.item.component.ResolvableProfile unpack()Lcom/mojang/datafixers/util/Either;
|
||||
public net.minecraft.world.item.component.ResolvableProfile$Dynamic <init>(Lcom/mojang/datafixers/util/Either;Lnet/minecraft/world/entity/player/PlayerSkin$Patch;)V
|
||||
public net.minecraft.world.item.component.ResolvableProfile$Partial
|
||||
public net.minecraft.world.item.component.ResolvableProfile$Partial <init>(Ljava/util/Optional;Ljava/util/Optional;Lcom/mojang/authlib/properties/PropertyMap;)V
|
||||
public net.minecraft.world.item.component.ResolvableProfile$Partial MAP_CODEC
|
||||
public net.minecraft.world.item.component.ResolvableProfile$Static <init>(Lcom/mojang/datafixers/util/Either;Lnet/minecraft/world/entity/player/PlayerSkin$Patch;)V
|
||||
public net.minecraft.world.item.context.UseOnContext <init>(Lnet/minecraft/world/level/Level;Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/world/InteractionHand;Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/phys/BlockHitResult;)V
|
||||
public net.minecraft.world.item.crafting.RecipeManager recipes
|
||||
public net.minecraft.world.item.crafting.Ingredient values
|
||||
public net.minecraft.world.item.crafting.RecipeMap byKey
|
||||
public net.minecraft.world.item.crafting.RecipeMap byType
|
||||
public net.minecraft.world.item.enchantment.ItemEnchantments showInTooltip
|
||||
public net.minecraft.world.item.trading.MerchantOffer demand
|
||||
public net.minecraft.world.item.trading.MerchantOffer result
|
||||
public net.minecraft.world.item.trading.MerchantOffer specialPriceDiff
|
||||
public net.minecraft.world.item.trading.MerchantOffer uses
|
||||
public net.minecraft.world.level.BaseSpawner delay(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;)V
|
||||
public net.minecraft.world.level.BaseSpawner isNearPlayer(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;)Z
|
||||
@@ -526,208 +512,173 @@ public net.minecraft.world.level.BaseSpawner spawnCount
|
||||
public net.minecraft.world.level.BaseSpawner spawnDelay
|
||||
public net.minecraft.world.level.BaseSpawner spawnPotentials
|
||||
public net.minecraft.world.level.BaseSpawner spawnRange
|
||||
public net.minecraft.world.level.GameRules$Value onChanged(Lnet/minecraft/server/MinecraftServer;)V
|
||||
public net.minecraft.world.level.Level DEFAULT_EXPLOSION_BLOCK_PARTICLES
|
||||
public net.minecraft.world.level.Level blockEntityTickers
|
||||
public net.minecraft.world.level.Level getEntities()Lnet/minecraft/world/level/entity/LevelEntityGetter;
|
||||
public net.minecraft.world.level.Level levelData
|
||||
public net.minecraft.world.level.Level rainLevel
|
||||
public net.minecraft.world.level.Level thread
|
||||
public net.minecraft.world.level.Level thunderLevel
|
||||
public net.minecraft.world.level.NaturalSpawner SPAWNING_CATEGORIES
|
||||
public net.minecraft.world.level.StructureManager level
|
||||
public net.minecraft.world.level.TicketStorage tickets
|
||||
public net.minecraft.world.level.biome.Biome climateSettings
|
||||
public net.minecraft.world.level.biome.Biome getTemperature(Lnet/minecraft/core/BlockPos;I)F
|
||||
public net.minecraft.world.level.biome.Biome$ClimateSettings
|
||||
public net.minecraft.world.level.biome.Biome$ClimateSettings <init>(ZFLnet/minecraft/world/level/biome/Biome$TemperatureModifier;F)V
|
||||
public net.minecraft.world.level.block.Block popExperience(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;I)V
|
||||
public net.minecraft.world.level.block.ChestBlock isBlockedChestByBlock(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;)Z
|
||||
public net.minecraft.world.level.block.ChiseledBookShelfBlock getHitSlot(Lnet/minecraft/world/phys/BlockHitResult;Lnet/minecraft/world/level/block/state/BlockState;)Ljava/util/OptionalInt;
|
||||
public net.minecraft.world.level.block.ChiseledBookShelfBlock getSection(F)I
|
||||
public net.minecraft.world.level.block.ComposterBlock$EmptyContainer
|
||||
public net.minecraft.world.level.block.ComposterBlock$InputContainer
|
||||
public net.minecraft.world.level.block.ComposterBlock$OutputContainer
|
||||
public net.minecraft.world.level.block.DispenserBlock dispenseFrom(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/BlockPos;)V
|
||||
public net.minecraft.world.level.block.DropperBlock dispenseFrom(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/BlockPos;)V
|
||||
public net.minecraft.world.level.block.FireBlock igniteOdds
|
||||
public net.minecraft.world.level.block.RedStoneWireBlock canSurvive(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/LevelReader;Lnet/minecraft/core/BlockPos;)Z
|
||||
public net.minecraft.world.level.block.RedStoneWireBlock shouldSignal
|
||||
public net.minecraft.world.level.block.ShulkerBoxBlock color
|
||||
public net.minecraft.world.level.block.SoundType breakSound
|
||||
public net.minecraft.world.level.block.SoundType hitSound
|
||||
public net.minecraft.world.level.block.RedstoneWireBlock canSurvive(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/LevelReader;Lnet/minecraft/core/BlockPos;)Z
|
||||
public net.minecraft.world.level.block.RedstoneWireBlock shouldSignal
|
||||
public net.minecraft.world.level.block.SelectableSlotContainer getSection(FI)I
|
||||
public net.minecraft.world.level.block.TurtleEggBlock decreaseEggs(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;)V
|
||||
public net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity cookingTimer
|
||||
public net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity cookingTotalTime
|
||||
public net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity getTotalCookTime(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity;)I
|
||||
public net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity litTimeRemaining
|
||||
public net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity quickCheck
|
||||
public net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity recipesUsed
|
||||
public net.minecraft.world.level.block.entity.BannerBlockEntity name
|
||||
public net.minecraft.world.level.block.entity.BarrelBlockEntity openersCounter
|
||||
public net.minecraft.world.level.block.entity.BarrelBlockEntity playSound(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/sounds/SoundEvent;)V
|
||||
public net.minecraft.world.level.block.entity.BarrelBlockEntity updateBlockState(Lnet/minecraft/world/level/block/state/BlockState;Z)V
|
||||
public net.minecraft.world.level.block.entity.BaseContainerBlockEntity lockKey
|
||||
public net.minecraft.world.level.block.entity.BaseContainerBlockEntity name
|
||||
public net.minecraft.world.level.block.entity.BeaconBlockEntity levels
|
||||
public net.minecraft.world.level.block.entity.BeaconBlockEntity lockKey
|
||||
public net.minecraft.world.level.block.entity.BeaconBlockEntity name
|
||||
public net.minecraft.world.level.block.entity.BeaconBlockEntity primaryPower
|
||||
public net.minecraft.world.level.block.entity.BeaconBlockEntity secondaryPower
|
||||
public net.minecraft.world.level.block.entity.BedBlockEntity color
|
||||
public net.minecraft.world.level.block.entity.BeehiveBlockEntity savedFlowerPos
|
||||
public net.minecraft.world.level.block.entity.BellBlockEntity resonating
|
||||
public net.minecraft.world.level.block.entity.BellBlockEntity resonationTicks
|
||||
public net.minecraft.world.level.block.entity.BlockEntity saveId(Lnet/minecraft/nbt/CompoundTag;)V
|
||||
public net.minecraft.world.level.block.entity.BlockEntity saveId(Lnet/minecraft/world/level/storage/ValueOutput;)V
|
||||
public net.minecraft.world.level.block.entity.BlockEntityType validBlocks
|
||||
public net.minecraft.world.level.block.entity.BrewingStandBlockEntity brewTime
|
||||
public net.minecraft.world.level.block.entity.BrewingStandBlockEntity fuel
|
||||
public net.minecraft.world.level.block.entity.BrewingStandBlockEntity totalBrewTime
|
||||
public net.minecraft.world.level.block.entity.BrushableBlockEntity item
|
||||
public net.minecraft.world.level.block.entity.BrushableBlockEntity lootTable
|
||||
public net.minecraft.world.level.block.entity.BrushableBlockEntity lootTableSeed
|
||||
public net.minecraft.world.level.block.entity.CampfireBlockEntity cookingProgress
|
||||
public net.minecraft.world.level.block.entity.CampfireBlockEntity cookingTime
|
||||
public net.minecraft.world.level.block.entity.ChestBlockEntity DEFAULT_NAME
|
||||
public net.minecraft.world.level.block.entity.ChestBlockEntity openersCounter
|
||||
public net.minecraft.world.level.block.entity.ChestBlockEntity playSound(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/sounds/SoundEvent;)V
|
||||
public net.minecraft.world.level.block.entity.ChiseledBookShelfBlockEntity lastInteractedSlot
|
||||
public net.minecraft.world.level.block.entity.ConduitBlockEntity MIN_KILL_SIZE
|
||||
public net.minecraft.world.level.block.entity.ConduitBlockEntity destroyTarget
|
||||
public net.minecraft.world.level.block.entity.ConduitBlockEntity destroyTargetUUID
|
||||
public net.minecraft.world.level.block.entity.ConduitBlockEntity effectBlocks
|
||||
public net.minecraft.world.level.block.entity.ConduitBlockEntity getDestroyRangeAABB(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/phys/AABB;
|
||||
public net.minecraft.world.level.block.entity.ConduitBlockEntity updateDestroyTarget(Lnet/minecraft/world/entity/EntityReference;Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;Z)Lnet/minecraft/world/entity/EntityReference;
|
||||
public net.minecraft.world.level.block.entity.CrafterBlockEntity craftingTicksRemaining
|
||||
public net.minecraft.world.level.block.entity.CreakingHeartBlockEntity clearCreakingInfo()V
|
||||
public net.minecraft.world.level.block.entity.CreakingHeartBlockEntity getCreakingProtector()Ljava/util/Optional;
|
||||
public net.minecraft.world.level.block.entity.CreakingHeartBlockEntity spawnProtector(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/level/block/entity/CreakingHeartBlockEntity;)Lnet/minecraft/world/entity/monster/creaking/Creaking;
|
||||
public net.minecraft.world.level.block.entity.CreakingHeartBlockEntity spreadResin(Lnet/minecraft/server/level/ServerLevel;)Ljava/util/Optional;
|
||||
public net.minecraft.world.level.block.entity.DecoratedPotBlockEntity decorations
|
||||
public net.minecraft.world.level.block.entity.EnderChestBlockEntity openersCounter
|
||||
public net.minecraft.world.level.block.entity.HopperBlockEntity cooldownTime
|
||||
public net.minecraft.world.level.block.entity.HopperBlockEntity setCooldown(I)V
|
||||
public net.minecraft.world.level.block.entity.LecternBlockEntity bookAccess
|
||||
public net.minecraft.world.level.block.entity.LecternBlockEntity setPage(I)V
|
||||
public net.minecraft.world.level.block.entity.RandomizableContainerBlockEntity lootTable
|
||||
public net.minecraft.world.level.block.entity.RandomizableContainerBlockEntity lootTableSeed
|
||||
public net.minecraft.world.level.block.entity.SculkCatalystBlockEntity$CatalystListener bloom(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/util/RandomSource;)V
|
||||
public net.minecraft.world.level.block.entity.SculkSensorBlockEntity lastVibrationFrequency
|
||||
public net.minecraft.world.level.block.entity.SculkShriekerBlockEntity warningLevel
|
||||
public net.minecraft.world.level.block.entity.ShulkerBoxBlockEntity openCount
|
||||
public net.minecraft.world.level.block.entity.SignBlockEntity playerWhoMayEdit
|
||||
public net.minecraft.world.level.block.entity.SkullBlockEntity customName
|
||||
public net.minecraft.world.level.block.entity.SkullBlockEntity noteBlockSound
|
||||
public net.minecraft.world.level.block.entity.SkullBlockEntity owner
|
||||
public net.minecraft.world.level.block.entity.StructureBlockEntity author
|
||||
public net.minecraft.world.level.block.entity.StructureBlockEntity ignoreEntities
|
||||
public net.minecraft.world.level.block.entity.StructureBlockEntity integrity
|
||||
public net.minecraft.world.level.block.entity.StructureBlockEntity metaData
|
||||
public net.minecraft.world.level.block.entity.StructureBlockEntity mirror
|
||||
public net.minecraft.world.level.block.entity.StructureBlockEntity mode
|
||||
public net.minecraft.world.level.block.entity.StructureBlockEntity rotation
|
||||
public net.minecraft.world.level.block.entity.StructureBlockEntity seed
|
||||
public net.minecraft.world.level.block.entity.StructureBlockEntity showAir
|
||||
public net.minecraft.world.level.block.entity.StructureBlockEntity showBoundingBox
|
||||
public net.minecraft.world.level.block.entity.StructureBlockEntity structurePos
|
||||
public net.minecraft.world.level.block.entity.StructureBlockEntity structureSize
|
||||
public net.minecraft.world.level.block.entity.TheEndGatewayBlockEntity age
|
||||
public net.minecraft.world.level.block.entity.TheEndGatewayBlockEntity exactTeleport
|
||||
public net.minecraft.world.level.block.entity.TheEndGatewayBlockEntity exitPortal
|
||||
public net.minecraft.world.level.block.entity.TrialSpawnerBlockEntity trialSpawner
|
||||
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawner config
|
||||
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawner isOminous
|
||||
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawner stateAccessor
|
||||
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerData currentMobs
|
||||
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerData detectedPlayers
|
||||
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerData nextSpawnData
|
||||
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerStateData cooldownEndsAt
|
||||
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerStateData currentMobs
|
||||
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerStateData detectedPlayers
|
||||
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerStateData nextMobSpawnsAt
|
||||
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerStateData nextSpawnData
|
||||
public net.minecraft.world.level.block.entity.vault.VaultBlockEntity serverData
|
||||
public net.minecraft.world.level.block.entity.vault.VaultServerData getRewardedPlayers()Ljava/util/Set;
|
||||
public net.minecraft.world.level.block.entity.vault.VaultServerData pauseStateUpdatingUntil(J)V
|
||||
public net.minecraft.world.level.block.entity.vault.VaultServerData stateUpdatingResumesAt()J
|
||||
public net.minecraft.world.level.block.entity.vault.VaultSharedData getConnectedPlayers()Ljava/util/Set;
|
||||
public net.minecraft.world.level.block.state.BlockBehaviour getMenuProvider(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/MenuProvider;
|
||||
public net.minecraft.world.level.block.state.BlockBehaviour hasCollision
|
||||
public net.minecraft.world.level.block.state.BlockBehaviour$BlockStateBase destroySpeed
|
||||
public net.minecraft.world.level.block.state.StateHolder PROPERTY_ENTRY_TO_STRING_FUNCTION
|
||||
public net.minecraft.world.level.block.state.properties.IntegerProperty max
|
||||
public net.minecraft.world.level.block.state.properties.IntegerProperty min
|
||||
public net.minecraft.world.level.chunk.ChunkAccess blockEntities
|
||||
public net.minecraft.world.level.chunk.ChunkAccess heightmaps
|
||||
public net.minecraft.world.level.chunk.ChunkGenerator generationSettingsGetter
|
||||
public net.minecraft.world.level.chunk.LevelChunk level
|
||||
public net.minecraft.world.level.chunk.LevelChunk loaded
|
||||
public net.minecraft.world.level.chunk.LevelChunkSection states
|
||||
public net.minecraft.world.level.chunk.PalettedContainer registry
|
||||
public net.minecraft.world.level.chunk.status.ChunkStatusTasks postLoadProtoChunk(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/level/storage/ValueInput$ValueInputList;)V
|
||||
public net.minecraft.world.level.chunk.storage.EntityStorage entityDeserializerQueue
|
||||
public net.minecraft.world.level.chunk.storage.EntityStorage level
|
||||
public net.minecraft.world.level.chunk.storage.RegionFileStorage regionCache
|
||||
public net.minecraft.world.level.chunk.storage.SerializableChunkData BLOCK_STATE_CODEC
|
||||
public net.minecraft.world.level.dimension.end.EndDragonFight GATEWAY_COUNT
|
||||
public net.minecraft.world.level.dimension.end.EndDragonFight dragonEvent
|
||||
public net.minecraft.world.level.dimension.end.EndDragonFight dragonUUID
|
||||
public net.minecraft.world.level.dimension.end.EndDragonFight findExitPortal()Lnet/minecraft/world/level/block/state/pattern/BlockPattern$BlockPatternMatch;
|
||||
public net.minecraft.world.level.dimension.end.EndDragonFight gateways
|
||||
public net.minecraft.world.level.dimension.end.EndDragonFight level
|
||||
public net.minecraft.world.level.dimension.end.EndDragonFight portalLocation
|
||||
public net.minecraft.world.level.dimension.end.EndDragonFight previouslyKilled
|
||||
public net.minecraft.world.level.dimension.end.EndDragonFight respawnCrystals
|
||||
public net.minecraft.world.level.dimension.end.EndDragonFight respawnDragon(Ljava/util/List;)V
|
||||
public net.minecraft.world.level.dimension.end.EndDragonFight respawnStage
|
||||
public net.minecraft.world.level.dimension.end.EndDragonFight setRespawnStage(Lnet/minecraft/world/level/dimension/end/DragonRespawnAnimation;)V
|
||||
public net.minecraft.world.level.dimension.end.EndDragonFight spawnExitPortal(Z)V
|
||||
public net.minecraft.world.level.dimension.end.EndDragonFight spawnNewGateway(Lnet/minecraft/core/BlockPos;)V
|
||||
public net.minecraft.world.level.dimension.end.EnderDragonFight GATEWAY_COUNT
|
||||
public net.minecraft.world.level.dimension.end.EnderDragonFight dragonEvent
|
||||
public net.minecraft.world.level.dimension.end.EnderDragonFight exitPortalLocation
|
||||
public net.minecraft.world.level.dimension.end.EnderDragonFight findExitPortal()Lnet/minecraft/world/level/block/state/pattern/BlockPattern$BlockPatternMatch;
|
||||
public net.minecraft.world.level.dimension.end.EnderDragonFight gateways
|
||||
public net.minecraft.world.level.dimension.end.EnderDragonFight hasPreviouslyKilledDragon
|
||||
public net.minecraft.world.level.dimension.end.EnderDragonFight level
|
||||
public net.minecraft.world.level.dimension.end.EnderDragonFight respawnCrystals
|
||||
public net.minecraft.world.level.dimension.end.EnderDragonFight respawnDragon(Ljava/util/List;)V
|
||||
public net.minecraft.world.level.dimension.end.EnderDragonFight respawnStage
|
||||
public net.minecraft.world.level.dimension.end.EnderDragonFight setRespawnStage(Lnet/minecraft/world/level/dimension/end/DragonRespawnStage;)V
|
||||
public net.minecraft.world.level.dimension.end.EnderDragonFight spawnExitPortal(Z)V
|
||||
public net.minecraft.world.level.dimension.end.EnderDragonFight spawnNewGateway(Lnet/minecraft/core/BlockPos;)V
|
||||
public net.minecraft.world.level.entity.PersistentEntitySectionManager ensureChunkQueuedForLoad(J)V
|
||||
public net.minecraft.world.level.entity.PersistentEntitySectionManager permanentStorage
|
||||
public net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator settings
|
||||
public net.minecraft.world.level.levelgen.SurfaceRules$Condition
|
||||
public net.minecraft.world.level.levelgen.SurfaceRules$Context
|
||||
public net.minecraft.world.level.levelgen.SurfaceRules$Context blockX
|
||||
public net.minecraft.world.level.levelgen.SurfaceRules$Context blockY
|
||||
public net.minecraft.world.level.levelgen.SurfaceRules$Context blockZ
|
||||
public net.minecraft.world.level.levelgen.SurfaceRules$Context context
|
||||
public net.minecraft.world.level.levelgen.SurfaceRules$Context randomState
|
||||
public net.minecraft.world.level.levelgen.SurfaceRules$LazyCondition
|
||||
public net.minecraft.world.level.levelgen.SurfaceRules$LazyYCondition
|
||||
public net.minecraft.world.level.levelgen.SurfaceRules$SurfaceRule
|
||||
public net.minecraft.world.level.levelgen.SurfaceRules$VerticalGradientConditionSource
|
||||
public net.minecraft.world.level.levelgen.structure.placement.StructurePlacement exclusionZone
|
||||
public net.minecraft.world.level.levelgen.structure.placement.StructurePlacement frequency
|
||||
public net.minecraft.world.level.levelgen.structure.placement.StructurePlacement frequencyReductionMethod
|
||||
public net.minecraft.world.level.levelgen.structure.placement.StructurePlacement locateOffset
|
||||
public net.minecraft.world.level.levelgen.structure.placement.StructurePlacement salt
|
||||
public net.minecraft.world.level.gamerules.GameRules rules
|
||||
public net.minecraft.world.level.levelgen.material.MaterialRuleContext context
|
||||
public net.minecraft.world.level.levelgen.structure.StructurePiece SHAPE_CHECK_BLOCKS
|
||||
public net.minecraft.world.level.levelgen.structure.placement.AbstractSpreadingStructurePlacement exclusionZone
|
||||
public net.minecraft.world.level.levelgen.structure.placement.AbstractSpreadingStructurePlacement frequency
|
||||
public net.minecraft.world.level.levelgen.structure.placement.AbstractSpreadingStructurePlacement frequencyReductionMethod
|
||||
public net.minecraft.world.level.levelgen.structure.placement.AbstractSpreadingStructurePlacement locateOffset
|
||||
public net.minecraft.world.level.levelgen.structure.placement.AbstractSpreadingStructurePlacement salt
|
||||
public net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate entityInfoList
|
||||
public net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate palettes
|
||||
public net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplateManager loadFromGenerated(Lnet/minecraft/resources/ResourceLocation;)Ljava/util/Optional;
|
||||
public net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplateManager loadFromResource(Lnet/minecraft/resources/ResourceLocation;)Ljava/util/Optional;
|
||||
public net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplateManager readStructure(Ljava/io/InputStream;)Lnet/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate;
|
||||
public net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplateManager resourceManagerSource
|
||||
public net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplateManager structureRepository
|
||||
public net.minecraft.world.level.material.MapColor MATERIAL_COLORS
|
||||
public net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplateManager tryLoad(Lnet/minecraft/resources/Identifier;)Ljava/util/Optional;
|
||||
public net.minecraft.world.level.levelgen.structure.templatesystem.loader.TemplateSource readStructure(Ljava/io/InputStream;)Lnet/minecraft/nbt/CompoundTag;
|
||||
public net.minecraft.world.level.levelgen.structure.templatesystem.loader.TemplateSource readStructure(Lnet/minecraft/nbt/CompoundTag;)Lnet/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate;
|
||||
public net.minecraft.world.level.pathfinder.Path nodes
|
||||
public net.minecraft.world.level.pathfinder.PathFinder nodeEvaluator
|
||||
public net.minecraft.world.level.saveddata.maps.MapItemSavedData carriedBy
|
||||
public net.minecraft.world.level.saveddata.maps.MapItemSavedData carriedByPlayers
|
||||
public net.minecraft.world.level.saveddata.maps.MapItemSavedData decorations
|
||||
public net.minecraft.world.level.saveddata.maps.MapItemSavedData setColorsDirty(II)V
|
||||
public net.minecraft.world.level.saveddata.maps.MapItemSavedData setDecorationsDirty()V
|
||||
public net.minecraft.world.level.storage.DimensionDataStorage cache
|
||||
public net.minecraft.world.level.storage.LevelStorageSource baseDir
|
||||
public net.minecraft.world.level.storage.LevelStorageSource$LevelStorageAccess levelDirectory
|
||||
public net.minecraft.world.level.storage.PrimaryLevelData settings
|
||||
public net.minecraft.world.scores.Objective displayName
|
||||
public net.minecraft.world.level.storage.SavedDataStorage cache
|
||||
public net.minecraft.world.level.storage.TagValueInput input
|
||||
public net.minecraft.world.level.storage.loot.providers.number.ints.ResolvableInt$Reference getProvider(Lnet/minecraft/world/level/storage/loot/LootContext;)Ljava/util/Optional;
|
||||
public net.minecraft.world.scores.criteria.ObjectiveCriteria CRITERIA_CACHE
|
||||
public-f net.minecraft.server.MinecraftServer potionBrewing
|
||||
public net.minecraft.world.timeline.Timeline tracks
|
||||
public-f net.minecraft.server.MinecraftServer storageSource
|
||||
public-f net.minecraft.server.ReloadableServerResources commands
|
||||
public-f net.minecraft.server.ServerAdvancementManager advancements
|
||||
public-f net.minecraft.server.dedicated.DedicatedServer serverLinks
|
||||
public-f net.minecraft.server.dedicated.DedicatedServer settings
|
||||
public-f net.minecraft.server.dedicated.DedicatedServerProperties pauseWhenEmptySeconds
|
||||
public-f net.minecraft.server.level.TicketType timeout
|
||||
public-f net.minecraft.server.players.PlayerList maxPlayers
|
||||
public-f net.minecraft.world.entity.Entity doTeamsAllowDamage(Lnet/minecraft/world/entity/Entity;)Z
|
||||
public-f net.minecraft.world.entity.LivingEntity combatTracker
|
||||
public-f net.minecraft.world.entity.LivingEntity invulnerableDuration
|
||||
public-f net.minecraft.world.entity.Mob goalSelector
|
||||
public-f net.minecraft.world.entity.Mob targetSelector
|
||||
public-f net.minecraft.world.entity.ai.attributes.RangedAttribute maxValue
|
||||
public-f net.minecraft.world.entity.player.Player gameProfile
|
||||
public-f net.minecraft.world.entity.raid.Raid numGroups
|
||||
public-f net.minecraft.world.inventory.AbstractContainerMenu dataSlots
|
||||
public-f net.minecraft.world.inventory.AbstractContainerMenu lastSlots
|
||||
public-f net.minecraft.world.inventory.AbstractContainerMenu remoteDataSlots
|
||||
public-f net.minecraft.world.inventory.AbstractContainerMenu remoteSlots
|
||||
public-f net.minecraft.world.inventory.AbstractContainerMenu slots
|
||||
public-f net.minecraft.world.item.enchantment.ItemEnchantments$Mutable showInTooltip
|
||||
public-f net.minecraft.world.item.crafting.RecipeManager recipes
|
||||
public-f net.minecraft.world.item.trading.MerchantOffer baseCostA
|
||||
public-f net.minecraft.world.item.trading.MerchantOffer costB
|
||||
public-f net.minecraft.world.item.trading.MerchantOffer maxUses
|
||||
public-f net.minecraft.world.item.trading.MerchantOffer priceMultiplier
|
||||
public-f net.minecraft.world.item.trading.MerchantOffer rewardExp
|
||||
public-f net.minecraft.world.item.trading.MerchantOffer xp
|
||||
public-f net.minecraft.world.level.LevelSettings hardcore
|
||||
public-f net.minecraft.world.level.LevelSettings levelName
|
||||
public-f net.minecraft.world.level.block.ChestBlock MENU_PROVIDER_COMBINER
|
||||
public-f net.minecraft.world.level.block.entity.BannerBlockEntity baseColor
|
||||
public-f net.minecraft.world.level.block.entity.trialspawner.TrialSpawner normalConfig
|
||||
public-f net.minecraft.world.level.block.entity.trialspawner.TrialSpawner ominousConfig
|
||||
public-f net.minecraft.world.level.block.entity.trialspawner.TrialSpawner requiredPlayerRange
|
||||
public-f net.minecraft.world.level.block.entity.trialspawner.TrialSpawner targetCooldownLength
|
||||
public-f net.minecraft.world.level.saveddata.maps.MapItemSavedData centerX
|
||||
public-f net.minecraft.world.level.saveddata.maps.MapItemSavedData centerZ
|
||||
public-f net.minecraft.world.level.saveddata.maps.MapItemSavedData dimension
|
||||
|
||||
@@ -10,18 +10,18 @@
|
||||
# a significant amount of time for us to track down every possible issue, so this file will likely be around and in
|
||||
# use - at least in some capacity - for a long time.
|
||||
|
||||
tiny 2 0 mojang+yarn spigot
|
||||
tiny 2 0 mojang spigot
|
||||
|
||||
# CraftBukkit changes type
|
||||
c net/minecraft/server/level/ServerLevel net/minecraft/server/level/WorldServer
|
||||
f Lnet/minecraft/world/level/storage/PrimaryLevelData; serverLevelData L
|
||||
f Lnet/minecraft/world/level/storage/PrimaryLevelData; serverLevelData I
|
||||
|
||||
c net/minecraft/world/level/chunk/LevelChunk net/minecraft/world/level/chunk/Chunk
|
||||
f Lnet/minecraft/server/level/ServerLevel; level r
|
||||
f Lnet/minecraft/server/level/ServerLevel; level q
|
||||
|
||||
# See mappings-patch.tiny
|
||||
c net/minecraft/server/level/ChunkMap net/minecraft/server/level/PlayerChunkMap
|
||||
f Lnet/minecraft/server/level/ChunkMap$ChunkDistanceManager; distanceManager G
|
||||
f Lnet/minecraft/server/level/ChunkMap$ChunkDistanceManager; distanceManager D
|
||||
|
||||
# The method is made public by Spigot, which then causes accidental overrides
|
||||
c net/minecraft/world/entity/Entity net/minecraft/world/entity/Entity
|
||||
|
||||
+37
-269
@@ -1,51 +1,64 @@
|
||||
import io.papermc.paperweight.util.*
|
||||
import io.papermc.paperweight.util.constants.*
|
||||
import io.papermc.paperweight.checkstyle.PaperCheckstyleExt
|
||||
import io.papermc.paperweight.checkstyle.tasks.PaperCheckstyleTask
|
||||
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
|
||||
import org.gradle.api.tasks.testing.logging.TestLogEvent
|
||||
import java.io.IOException
|
||||
import java.net.URI
|
||||
import java.nio.file.FileVisitResult
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.SimpleFileVisitor
|
||||
import kotlin.io.path.*
|
||||
import java.nio.file.Path
|
||||
import kotlin.random.Random
|
||||
|
||||
plugins {
|
||||
id("io.papermc.paperweight.core") version "2.0.0-beta.8" apply false
|
||||
id("io.papermc.paperweight.core") version "2.0.0-beta.24" apply false
|
||||
}
|
||||
|
||||
subprojects {
|
||||
apply(plugin = "java-library")
|
||||
apply(plugin = "maven-publish")
|
||||
apply {
|
||||
plugin("java-library")
|
||||
plugin("maven-publish")
|
||||
}
|
||||
|
||||
extensions.configure<JavaPluginExtension> {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(21)
|
||||
languageVersion = JavaLanguageVersion.of(25)
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType<AbstractArchiveTask>().configureEach {
|
||||
isPreserveFileTimestamps = false
|
||||
isReproducibleFileOrder = true
|
||||
val tempDisabled = setOf("paper-server", "paper-generator", "test-plugin")
|
||||
|
||||
if (name !in tempDisabled) {
|
||||
apply { plugin("io.papermc.paperweight.paper-checkstyle") }
|
||||
extensions.configure<PaperCheckstyleExt> {
|
||||
typeUseAnnotationsFile.set(rootProject.layout.projectDirectory.file(".checkstyle/type_use_annotations.txt"))
|
||||
}
|
||||
|
||||
/*tasks.withType<PaperCheckstyleTask>().configureEach {
|
||||
configDirectory = rootProject.layout.projectDirectory.dir(".checkstyle")
|
||||
// configFile = layout.projectDirectory.file(".checkstyle/checkstyle.xml").asFile // use the base file if not overwritten
|
||||
maxHeapSize = "2g"
|
||||
reports {
|
||||
xml.required = true
|
||||
html.required = true
|
||||
}
|
||||
}*/
|
||||
|
||||
dependencies {
|
||||
"checkstyle"(project(":paper-checkstyle"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val paperMavenPublicUrl = "https://repo.papermc.io/repository/maven-public/"
|
||||
|
||||
subprojects {
|
||||
tasks.withType<JavaCompile> {
|
||||
tasks.withType<JavaCompile>().configureEach {
|
||||
options.encoding = Charsets.UTF_8.name()
|
||||
options.release = 21
|
||||
options.release = 25
|
||||
options.isFork = true
|
||||
options.compilerArgs.addAll(listOf("-Xlint:-deprecation", "-Xlint:-removal"))
|
||||
}
|
||||
tasks.withType<Javadoc> {
|
||||
tasks.withType<Javadoc>().configureEach {
|
||||
options.encoding = Charsets.UTF_8.name()
|
||||
}
|
||||
tasks.withType<ProcessResources> {
|
||||
tasks.withType<ProcessResources>().configureEach {
|
||||
filteringCharset = Charsets.UTF_8.name()
|
||||
}
|
||||
tasks.withType<Test> {
|
||||
tasks.withType<Test>().configureEach {
|
||||
testLogging {
|
||||
showStackTraces = true
|
||||
exceptionFormat = TestExceptionFormat.FULL
|
||||
@@ -60,8 +73,8 @@ subprojects {
|
||||
|
||||
extensions.configure<PublishingExtension> {
|
||||
repositories {
|
||||
maven("https://repo.papermc.io/repository/maven-snapshots/") {
|
||||
name = "paperSnapshots"
|
||||
maven("https://artifactory.papermc.io/artifactory/releases/") {
|
||||
name = "paperReleases"
|
||||
credentials(PasswordCredentials::class)
|
||||
}
|
||||
}
|
||||
@@ -81,248 +94,3 @@ tasks.register("printPaperVersion") {
|
||||
println(paperVersion.get())
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
// Used when updating to a new Minecraft version
|
||||
tasks.register("pickUpdateDirectory") {
|
||||
val issue = providers.gradleProperty("updateTaskListIssue").get()
|
||||
val patchesFolder = layout.projectDirectory.dir("paper-server/patches/").convertToPath()
|
||||
val storage = layout.cache.resolve("last-updating-folder").also { it.parent.createDirectories() }
|
||||
|
||||
doLast {
|
||||
val html = URI(issue).toURL().readText()
|
||||
|
||||
val beginMarker = "```[tasklist]"
|
||||
val start = html.indexOf(beginMarker)
|
||||
val end = html.indexOf("```", start + beginMarker.length)
|
||||
val taskList = html.substring(start + beginMarker.length, end)
|
||||
|
||||
// Extract all incomplete tasks and select a random one
|
||||
val incompleteTasks = taskList.split("\\n").filter { it.startsWith("- [ ]") }.map { it.replace("- [ ] ", "") }
|
||||
if (incompleteTasks.isEmpty()) {
|
||||
error("No incomplete tasks found in the task list.")
|
||||
}
|
||||
|
||||
val next = incompleteTasks[Random.nextInt(incompleteTasks.size)]
|
||||
|
||||
println("checking out $next...")
|
||||
val dir = patchesFolder.resolve("unapplied").resolve(next)
|
||||
if (!dir.exists()) {
|
||||
error("Unapplied patch folder $next does not exist, did someone else already check it out and forgot to mark it?")
|
||||
}
|
||||
dir.listDirectoryEntries("*.patch").forEach { patch ->
|
||||
patch.copyTo(patchesFolder.resolve("sources").resolve(next).resolve(patch.fileName).also { it.createDirectories() }, overwrite = true)
|
||||
patch.deleteIfExists()
|
||||
}
|
||||
if (dir.listDirectoryEntries().isEmpty()) {
|
||||
dir.deleteIfExists()
|
||||
}
|
||||
|
||||
storage.writeText(next)
|
||||
println("please tick the box in the issue: $issue")
|
||||
println("if you don't finish it, uncheck the task again after you commited")
|
||||
}
|
||||
}
|
||||
|
||||
tasks.register("showUpdateDirectories") {
|
||||
val patchDir = layout.projectDirectory.dir("paper-server/patches/unapplied/").convertToPath()
|
||||
|
||||
doLast {
|
||||
Files.walkFileTree(patchDir, object : SimpleFileVisitor<Path>() {
|
||||
override fun postVisitDirectory(dir: Path?, exc: IOException?): FileVisitResult {
|
||||
dir?.takeIf { it.listDirectoryEntries("*.patch").isNotEmpty() }?.let {
|
||||
println("- [ ] ${patchDir.relativize(it).pathString.replace("\\", "/")}")
|
||||
}
|
||||
return FileVisitResult.CONTINUE
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
tasks.register("moveUpdateDirectory") {
|
||||
notCompatibleWithConfigurationCache("This task is interactive")
|
||||
fun expandUserHome(path: String): Path {
|
||||
return Path.of(path.replaceFirst("^~".toRegex(), System.getProperty("user.home")))
|
||||
}
|
||||
|
||||
val input = providers.fileContents(layout.projectDirectory.file("$CACHE_PATH/last-updating-folder")).asText.map { it.trim() }
|
||||
val patchFolder = layout.projectDirectory.dir("paper-server/patches/sources").dir(input)
|
||||
val sourceFolder = layout.projectDirectory.dir("paper-server/src/minecraft/java").dir(input)
|
||||
val targetFolder = providers.gradleProperty("cleanPaperRepo").map {
|
||||
expandUserHome(it).resolve(input.get())
|
||||
}
|
||||
|
||||
fun copy(back: Boolean = false) {
|
||||
patchFolder.path.listDirectoryEntries().forEach {
|
||||
val relative = patchFolder.path.relativize(it).toString().replace(".patch", "")
|
||||
val source = sourceFolder.path.resolve(relative)
|
||||
val target = targetFolder.get().resolve(relative)
|
||||
if (target.isDirectory()) { return@forEach }
|
||||
if (back) {
|
||||
target.copyTo(source, overwrite = true)
|
||||
} else {
|
||||
source.copyTo(target, overwrite = true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
doLast {
|
||||
if (!targetFolder.isPresent) {
|
||||
error("cleanPaperRepo is required, define it in gradle.properties")
|
||||
}
|
||||
copy()
|
||||
val files = patchFolder.path.listDirectoryEntries().map { it.fileName.toString().replace(".patch", "") }
|
||||
println("Copied $files from $sourceFolder to $targetFolder")
|
||||
println("Make the files compile, then press enter to copy them back!")
|
||||
System.`in`.read()
|
||||
copy(back = true)
|
||||
println("copied back!")
|
||||
}
|
||||
}
|
||||
|
||||
// see gradle.properties
|
||||
if (providers.gradleProperty("updatingMinecraft").getOrElse("false").toBoolean()) {
|
||||
tasks.collectAtsFromPatches {
|
||||
val dir = layout.projectDirectory.dir("patches/unapplied/server")
|
||||
if (dir.path.isDirectory()) {
|
||||
extraPatchDir = dir
|
||||
}
|
||||
}
|
||||
tasks.withType<io.papermc.paperweight.tasks.RebuildGitPatches>().configureEach {
|
||||
filterPatches = false
|
||||
}
|
||||
tasks.register("continueServerUpdate", RebasePatches::class) {
|
||||
description = "Moves the next X patches from unapplied to applied, and applies them. X being the number of patches that apply cleanly, plus the terminal failure if any."
|
||||
projectDir = project.projectDir
|
||||
appliedPatches = file("patches/server")
|
||||
unappliedPatches = file("patches/unapplied/server")
|
||||
applyTaskName = "applyServerPatches"
|
||||
patchedDir = "Paper-Server"
|
||||
}
|
||||
}
|
||||
|
||||
@UntrackedTask(because = "Does not make sense to track state")
|
||||
abstract class RebasePatches : BaseTask() {
|
||||
@get:Internal
|
||||
abstract val projectDir: DirectoryProperty
|
||||
|
||||
@get:InputFiles
|
||||
abstract val appliedPatches: DirectoryProperty
|
||||
|
||||
@get:InputFiles
|
||||
abstract val unappliedPatches: DirectoryProperty
|
||||
|
||||
@get:Input
|
||||
abstract val applyTaskName: Property<String>
|
||||
|
||||
@get:Input
|
||||
abstract val patchedDir: Property<String>
|
||||
|
||||
private fun unapplied(): List<Path> =
|
||||
unappliedPatches.path.listDirectoryEntries("*.patch").sortedBy { it.name }
|
||||
|
||||
private fun appliedLoc(patch: Path): Path = appliedPatches.path.resolve(unappliedPatches.path.relativize(patch))
|
||||
|
||||
companion object {
|
||||
val regex = Pattern.compile("Patch failed at ([0-9]{4}) (.*)")
|
||||
val continuationRegex = Pattern.compile("^\\s{1}.+\$")
|
||||
const val subjectPrefix = "Subject: [PATCH] "
|
||||
}
|
||||
|
||||
@TaskAction
|
||||
fun run() {
|
||||
val patchedDirPath = projectDir.path.resolve(patchedDir.get())
|
||||
if (patchedDirPath.isDirectory()) {
|
||||
val status = Git(patchedDirPath)("status").getText()
|
||||
if (status.contains("You are in the middle of an am session.")) {
|
||||
throw PaperweightException("Cannot continue update when $patchedDirPath is in the middle of an am session.")
|
||||
}
|
||||
}
|
||||
|
||||
val unapplied = unapplied()
|
||||
for (patch in unapplied) {
|
||||
patch.copyTo(appliedLoc(patch))
|
||||
}
|
||||
|
||||
val out = ByteArrayOutputStream()
|
||||
val proc = ProcessBuilder()
|
||||
.directory(projectDir.path)
|
||||
.command("./gradlew", applyTaskName.get())
|
||||
.redirectErrorStream(true)
|
||||
.start()
|
||||
|
||||
val f = redirect(proc.inputStream, out)
|
||||
|
||||
val exit = proc.waitFor()
|
||||
f.get()
|
||||
|
||||
if (exit != 0) {
|
||||
val outStr = String(out.toByteArray())
|
||||
val matcher = regex.matcher(outStr)
|
||||
if (!matcher.find()) error("Could not determine failure point")
|
||||
val failedSubjectFragment = matcher.group(2)
|
||||
val failed = unapplied.single { p ->
|
||||
p.useLines { lines ->
|
||||
val collect = mutableListOf<String>()
|
||||
for (line in lines) {
|
||||
if (line.startsWith(subjectPrefix)) {
|
||||
collect += line
|
||||
} else if (collect.size == 1) {
|
||||
if (continuationRegex.matcher(line).matches()) {
|
||||
collect += line
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
val subjectLine = collect.joinToString("").substringAfter(subjectPrefix)
|
||||
subjectLine.startsWith(failedSubjectFragment)
|
||||
}
|
||||
}
|
||||
|
||||
// delete successful & failure point from unapplied patches dir
|
||||
for (path in unapplied) {
|
||||
path.deleteIfExists()
|
||||
if (path == failed) {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// delete failed from patches dir
|
||||
var started = false
|
||||
for (path in unapplied) {
|
||||
if (path == failed) {
|
||||
started = true
|
||||
continue
|
||||
}
|
||||
if (started) {
|
||||
appliedLoc(path).deleteIfExists()
|
||||
}
|
||||
}
|
||||
|
||||
// Delete the build file before resetting the AM session in case it has compilation errors
|
||||
patchedDirPath.resolve("build.gradle.kts").deleteIfExists()
|
||||
// Apply again to reset the am session (so it ends on the failed patch, to allow us to rebuild after fixing it)
|
||||
val apply2 = ProcessBuilder()
|
||||
.directory(projectDir.path)
|
||||
.command("./gradlew", applyTaskName.get())
|
||||
.redirectErrorStream(true)
|
||||
.start()
|
||||
|
||||
val f1 = redirect(apply2.inputStream, System.out)
|
||||
apply2.waitFor()
|
||||
f1.get()
|
||||
|
||||
logger.lifecycle(outStr)
|
||||
logger.lifecycle("Patch failed at $failed; See Git output above.")
|
||||
} else {
|
||||
unapplied.forEach { it.deleteIfExists() }
|
||||
logger.lifecycle("All patches applied!")
|
||||
}
|
||||
|
||||
val git = Git(projectDir.path)
|
||||
git("add", appliedPatches.path.toString() + "/*").runSilently()
|
||||
git("add", unappliedPatches.path.toString() + "/*").runSilently()
|
||||
}
|
||||
}
|
||||
*/
|
||||
+5
-3
@@ -1,10 +1,12 @@
|
||||
group=io.papermc.paper
|
||||
version=1.21.4-R0.1-SNAPSHOT
|
||||
mcVersion=1.21.4
|
||||
mcVersion=26.3
|
||||
# This is the current API version for use in (paper-)plugin.yml files
|
||||
# During snapshot cycles this should be the anticipated version of the release target
|
||||
apiVersion=26.3
|
||||
channel=STABLE
|
||||
|
||||
# Set to true while updating Minecraft version
|
||||
updatingMinecraft=false
|
||||
updateTaskListIssue=https://github.com/PaperMC/Paper/issues/11736
|
||||
|
||||
org.gradle.configuration-cache=true
|
||||
org.gradle.caching=true
|
||||
|
||||
Vendored
BIN
Binary file not shown.
+3
-1
@@ -1,7 +1,9 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.8.0-bin.zip
|
||||
networkTimeout=10000
|
||||
retries=0
|
||||
retryBackOffMs=500
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Copyright © 2015-2021 the original authors.
|
||||
# Copyright © 2015 the original authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# Gradle start up script for POSIX generated by Gradle.
|
||||
# gradlew start up script for POSIX generated by Gradle.
|
||||
#
|
||||
# Important for running:
|
||||
#
|
||||
@@ -29,7 +29,7 @@
|
||||
# bash, then to run this script, type that shell name before the whole
|
||||
# command line, like:
|
||||
#
|
||||
# ksh Gradle
|
||||
# ksh gradlew
|
||||
#
|
||||
# Busybox and similar reduced shells will NOT work, because this script
|
||||
# requires all of these POSIX shell features:
|
||||
@@ -57,7 +57,7 @@
|
||||
# Darwin, MinGW, and NonStop.
|
||||
#
|
||||
# (3) This script is generated from the Groovy template
|
||||
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# within the Gradle project.
|
||||
#
|
||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||
@@ -114,7 +114,6 @@ case "$( uname )" in #(
|
||||
NONSTOP* ) nonstop=true ;;
|
||||
esac
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
@@ -172,7 +171,6 @@ fi
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if "$cygwin" || "$msys" ; then
|
||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
||||
|
||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||
|
||||
@@ -205,15 +203,14 @@ fi
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Collect all arguments for the java command:
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||
# and any embedded shellness will be escaped.
|
||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||
# treated as '${Hostname}' itself on the command line.
|
||||
|
||||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
-classpath "$CLASSPATH" \
|
||||
org.gradle.wrapper.GradleWrapperMain \
|
||||
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
||||
"$@"
|
||||
|
||||
# Stop when "xargs" is not available.
|
||||
|
||||
Vendored
+52
-34
@@ -19,12 +19,39 @@
|
||||
@if "%DEBUG%"=="" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem gradlew startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
@rem Set local scope for the variables, and ensure extensions are enabled
|
||||
setlocal EnableExtensions
|
||||
|
||||
@rem Catch executions from older scripts and ensure they exit cleanly.
|
||||
@rem This can be removed once we can be reasonably confident that few people
|
||||
@rem will be migrating directly to this new wrapper.
|
||||
goto afterSafetyNet
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
goto exitWithErrorLevel
|
||||
:afterSafetyNet
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%"=="" set DIRNAME=.
|
||||
@@ -45,13 +72,14 @@ set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if %ERRORLEVEL% equ 0 goto execute
|
||||
|
||||
echo. 1>&2
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
||||
echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
1>&2 echo.
|
||||
1>&2 echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
1>&2 echo.
|
||||
1>&2 echo Please set the JAVA_HOME variable in your environment to match the
|
||||
1>&2 echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
"%COMSPEC%" /c exit 1
|
||||
goto exitWithErrorLevel
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
@@ -59,36 +87,26 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo. 1>&2
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
||||
echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
1>&2 echo.
|
||||
1>&2 echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
1>&2 echo.
|
||||
1>&2 echo Please set the JAVA_HOME variable in your environment to match the
|
||||
1>&2 echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
"%COMSPEC%" /c exit 1
|
||||
goto exitWithErrorLevel
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||
@rem Execute gradlew
|
||||
@rem endlocal doesn't take effect until after the line is parsed and variables are expanded
|
||||
@rem which allows us to clear the local environment before executing the java command
|
||||
endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel & goto exitWithErrorLevel
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if %ERRORLEVEL% equ 0 goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
set EXIT_CODE=%ERRORLEVEL%
|
||||
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
||||
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
||||
exit /b %EXIT_CODE%
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
||||
@rem This label must not be changed. We rely on old scripts being able to jump to this point.
|
||||
:exitWithErrorLevel
|
||||
@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts
|
||||
"%COMSPEC%" /c exit %ERRORLEVEL%
|
||||
@@ -1,37 +0,0 @@
|
||||
import io.papermc.paperweight.util.defaultJavaLauncher
|
||||
|
||||
plugins {
|
||||
java
|
||||
id("io.papermc.paperweight.source-generator")
|
||||
}
|
||||
|
||||
paperweight {
|
||||
atFile.set(layout.projectDirectory.file("wideners.at"))
|
||||
}
|
||||
|
||||
dependencies {
|
||||
minecraftJar(project(":paper-server", "mappedJarOutgoing"))
|
||||
implementation(project(":paper-server", "macheMinecraftLibraries"))
|
||||
|
||||
implementation("com.squareup:javapoet:1.13.0")
|
||||
implementation(project(":paper-api"))
|
||||
implementation("io.github.classgraph:classgraph:4.8.47")
|
||||
implementation("org.jetbrains:annotations:26.0.1")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
|
||||
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
|
||||
}
|
||||
|
||||
tasks.register<JavaExec>("generate") {
|
||||
dependsOn(tasks.check)
|
||||
mainClass.set("io.papermc.generator.Main")
|
||||
classpath(sourceSets.main.map { it.runtimeClasspath })
|
||||
args(projectDir.toPath().resolve("generated").toString())
|
||||
javaLauncher = javaToolchains.defaultJavaLauncher(project)
|
||||
}
|
||||
|
||||
tasks.test {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
|
||||
group = "io.papermc.paper"
|
||||
version = "1.0-SNAPSHOT"
|
||||
@@ -1,96 +0,0 @@
|
||||
package io.papermc.generator;
|
||||
|
||||
import io.papermc.generator.types.GeneratedKeyType;
|
||||
import io.papermc.generator.types.GeneratedTagKeyType;
|
||||
import io.papermc.generator.types.SourceGenerator;
|
||||
import io.papermc.generator.types.goal.MobGoalGenerator;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import org.bukkit.Art;
|
||||
import org.bukkit.Fluid;
|
||||
import org.bukkit.GameEvent;
|
||||
import org.bukkit.JukeboxSong;
|
||||
import org.bukkit.MusicInstrument;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.attribute.Attribute;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.block.BlockType;
|
||||
import org.bukkit.block.banner.PatternType;
|
||||
import org.bukkit.damage.DamageType;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Cat;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Frog;
|
||||
import org.bukkit.entity.Villager;
|
||||
import org.bukkit.entity.Wolf;
|
||||
import org.bukkit.generator.structure.Structure;
|
||||
import org.bukkit.generator.structure.StructureType;
|
||||
import org.bukkit.inventory.ItemType;
|
||||
import org.bukkit.inventory.MenuType;
|
||||
import org.bukkit.inventory.meta.trim.TrimMaterial;
|
||||
import org.bukkit.inventory.meta.trim.TrimPattern;
|
||||
import org.bukkit.map.MapCursor;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
public interface Generators {
|
||||
|
||||
SourceGenerator[] API = {
|
||||
// built-ins
|
||||
simpleKey("GameEventKeys", GameEvent.class, Registries.GAME_EVENT, RegistryKey.GAME_EVENT, true),
|
||||
simpleKey("StructureTypeKeys", StructureType.class, Registries.STRUCTURE_TYPE, RegistryKey.STRUCTURE_TYPE, false),
|
||||
simpleKey("MobEffectKeys", PotionEffectType.class, Registries.MOB_EFFECT, RegistryKey.MOB_EFFECT, false),
|
||||
simpleKey("BlockTypeKeys", BlockType.class, Registries.BLOCK, RegistryKey.BLOCK, false),
|
||||
simpleKey("ItemTypeKeys", ItemType.class, Registries.ITEM, RegistryKey.ITEM, false),
|
||||
simpleKey("CatVariantKeys", Cat.Type.class, Registries.CAT_VARIANT, RegistryKey.CAT_VARIANT, false),
|
||||
simpleKey("FrogVariantKeys", Frog.Variant.class, Registries.FROG_VARIANT, RegistryKey.FROG_VARIANT, false),
|
||||
simpleKey("VillagerProfessionKeys", Villager.Profession.class, Registries.VILLAGER_PROFESSION, RegistryKey.VILLAGER_PROFESSION, false),
|
||||
simpleKey("VillagerTypeKeys", Villager.Type.class, Registries.VILLAGER_TYPE, RegistryKey.VILLAGER_TYPE, false),
|
||||
simpleKey("MapDecorationTypeKeys", MapCursor.Type.class, Registries.MAP_DECORATION_TYPE, RegistryKey.MAP_DECORATION_TYPE, false),
|
||||
simpleKey("MenuTypeKeys", MenuType.class, Registries.MENU, RegistryKey.MENU, false),
|
||||
simpleKey("AttributeKeys", Attribute.class, Registries.ATTRIBUTE, RegistryKey.ATTRIBUTE, false),
|
||||
simpleKey("FluidKeys", Fluid.class, Registries.FLUID, RegistryKey.FLUID, false),
|
||||
simpleKey("SoundEventKeys", Sound.class, Registries.SOUND_EVENT, RegistryKey.SOUND_EVENT, false),
|
||||
|
||||
// data-driven
|
||||
simpleKey("BiomeKeys", Biome.class, Registries.BIOME, RegistryKey.BIOME, true),
|
||||
simpleKey("StructureKeys", Structure.class, Registries.STRUCTURE, RegistryKey.STRUCTURE, true),
|
||||
simpleKey("TrimMaterialKeys", TrimMaterial.class, Registries.TRIM_MATERIAL, RegistryKey.TRIM_MATERIAL, true),
|
||||
simpleKey("TrimPatternKeys", TrimPattern.class, Registries.TRIM_PATTERN, RegistryKey.TRIM_PATTERN, true),
|
||||
simpleKey("DamageTypeKeys", DamageType.class, Registries.DAMAGE_TYPE, RegistryKey.DAMAGE_TYPE, true),
|
||||
simpleKey("WolfVariantKeys", Wolf.Variant.class, Registries.WOLF_VARIANT, RegistryKey.WOLF_VARIANT, true),
|
||||
simpleKey("EnchantmentKeys", Enchantment.class, Registries.ENCHANTMENT, RegistryKey.ENCHANTMENT, true),
|
||||
simpleKey("JukeboxSongKeys", JukeboxSong.class, Registries.JUKEBOX_SONG, RegistryKey.JUKEBOX_SONG, true),
|
||||
simpleKey("BannerPatternKeys", PatternType.class, Registries.BANNER_PATTERN, RegistryKey.BANNER_PATTERN, true),
|
||||
simpleKey("PaintingVariantKeys", Art.class, Registries.PAINTING_VARIANT, RegistryKey.PAINTING_VARIANT, true),
|
||||
simpleKey("InstrumentKeys", MusicInstrument.class, Registries.INSTRUMENT, RegistryKey.INSTRUMENT, true),
|
||||
|
||||
// tags
|
||||
simpleTagKey("GameEventTagKeys", GameEvent.class, Registries.GAME_EVENT, RegistryKey.GAME_EVENT),
|
||||
simpleTagKey("BlockTypeTagKeys", BlockType.class, Registries.BLOCK, RegistryKey.BLOCK),
|
||||
simpleTagKey("ItemTypeTagKeys", ItemType.class, Registries.ITEM, RegistryKey.ITEM),
|
||||
simpleTagKey("CatVariantTagKeys", Cat.Type.class, Registries.CAT_VARIANT, RegistryKey.CAT_VARIANT),
|
||||
simpleTagKey("FluidTagKeys", Fluid.class, Registries.FLUID, RegistryKey.FLUID),
|
||||
|
||||
simpleTagKey("BiomeTagKeys", Biome.class, Registries.BIOME, RegistryKey.BIOME),
|
||||
simpleTagKey("StructureTagKeys", Structure.class, Registries.STRUCTURE, RegistryKey.STRUCTURE),
|
||||
simpleTagKey("DamageTypeTagKeys", DamageType.class, Registries.DAMAGE_TYPE, RegistryKey.DAMAGE_TYPE),
|
||||
simpleTagKey("EnchantmentTagKeys", Enchantment.class, Registries.ENCHANTMENT, RegistryKey.ENCHANTMENT),
|
||||
simpleTagKey("BannerPatternTagKeys", PatternType.class, Registries.BANNER_PATTERN, RegistryKey.BANNER_PATTERN),
|
||||
simpleTagKey("PaintingVariantTagKeys", Art.class, Registries.PAINTING_VARIANT, RegistryKey.PAINTING_VARIANT),
|
||||
simpleTagKey("InstrumentTagKeys", MusicInstrument.class, Registries.INSTRUMENT, RegistryKey.INSTRUMENT),
|
||||
|
||||
// api only
|
||||
simpleTagKey("EntityTypeTagKeys", EntityType.class, Registries.ENTITY_TYPE, RegistryKey.ENTITY_TYPE),
|
||||
new MobGoalGenerator("VanillaGoal", "com.destroystokyo.paper.entity.ai")
|
||||
};
|
||||
|
||||
private static <T, A> SourceGenerator simpleKey(final String className, final Class<A> apiType, final ResourceKey<? extends Registry<T>> registryKey, final RegistryKey<A> apiRegistryKey, final boolean publicCreateKeyMethod) {
|
||||
return new GeneratedKeyType<>(className, apiType, "io.papermc.paper.registry.keys", registryKey, apiRegistryKey, publicCreateKeyMethod);
|
||||
}
|
||||
|
||||
private static <T, A> SourceGenerator simpleTagKey(final String className, final Class<A> apiType, final ResourceKey<? extends Registry<T>> registryKey, final RegistryKey<A> apiRegistryKey) {
|
||||
return new GeneratedTagKeyType<>(className, apiType, "io.papermc.paper.registry.keys.tags", registryKey, apiRegistryKey, true);
|
||||
}
|
||||
}
|
||||
@@ -1,93 +0,0 @@
|
||||
package io.papermc.generator;
|
||||
|
||||
import com.google.common.util.concurrent.MoreExecutors;
|
||||
import com.mojang.logging.LogUtils;
|
||||
import io.papermc.generator.types.SourceGenerator;
|
||||
import io.papermc.generator.utils.TagCollector;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import net.minecraft.SharedConstants;
|
||||
import net.minecraft.commands.Commands;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.core.LayeredRegistryAccess;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.core.RegistryAccess;
|
||||
import net.minecraft.resources.RegistryDataLoader;
|
||||
import net.minecraft.server.Bootstrap;
|
||||
import net.minecraft.server.RegistryLayer;
|
||||
import net.minecraft.server.ReloadableServerResources;
|
||||
import net.minecraft.server.packs.PackType;
|
||||
import net.minecraft.server.packs.repository.Pack;
|
||||
import net.minecraft.server.packs.repository.PackRepository;
|
||||
import net.minecraft.server.packs.repository.ServerPacksSource;
|
||||
import net.minecraft.server.packs.resources.MultiPackResourceManager;
|
||||
import net.minecraft.tags.TagKey;
|
||||
import net.minecraft.tags.TagLoader;
|
||||
import net.minecraft.world.flag.FeatureFlags;
|
||||
import org.apache.commons.io.file.PathUtils;
|
||||
import org.slf4j.Logger;
|
||||
|
||||
public final class Main {
|
||||
|
||||
private static final Logger LOGGER = LogUtils.getLogger();
|
||||
public static final RegistryAccess.Frozen REGISTRY_ACCESS;
|
||||
public static final Map<TagKey<?>, String> EXPERIMENTAL_TAGS;
|
||||
|
||||
static {
|
||||
SharedConstants.tryDetectVersion();
|
||||
Bootstrap.bootStrap();
|
||||
Bootstrap.validate();
|
||||
|
||||
final PackRepository resourceRepository = ServerPacksSource.createVanillaTrustedRepository();
|
||||
resourceRepository.reload();
|
||||
final MultiPackResourceManager resourceManager = new MultiPackResourceManager(PackType.SERVER_DATA, resourceRepository.getAvailablePacks().stream().map(Pack::open).toList());
|
||||
LayeredRegistryAccess<RegistryLayer> layers = RegistryLayer.createRegistryAccess();
|
||||
final List<Registry.PendingTags<?>> pendingTags = TagLoader.loadTagsForExistingRegistries(resourceManager, layers.getLayer(RegistryLayer.STATIC));
|
||||
final List<HolderLookup.RegistryLookup<?>> worldGenLayer = TagLoader.buildUpdatedLookups(layers.getAccessForLoading(RegistryLayer.WORLDGEN), pendingTags);
|
||||
final RegistryAccess.Frozen frozenWorldgenRegistries = RegistryDataLoader.load(resourceManager, worldGenLayer, RegistryDataLoader.WORLDGEN_REGISTRIES);
|
||||
layers = layers.replaceFrom(RegistryLayer.WORLDGEN, frozenWorldgenRegistries);
|
||||
REGISTRY_ACCESS = layers.compositeAccess().freeze();
|
||||
final ReloadableServerResources reloadableServerResources = ReloadableServerResources.loadResources(
|
||||
resourceManager,
|
||||
layers,
|
||||
pendingTags,
|
||||
FeatureFlags.VANILLA_SET,
|
||||
Commands.CommandSelection.DEDICATED,
|
||||
0,
|
||||
MoreExecutors.directExecutor(),
|
||||
MoreExecutors.directExecutor()
|
||||
).join();
|
||||
reloadableServerResources.updateStaticRegistryTags();
|
||||
EXPERIMENTAL_TAGS = TagCollector.grabExperimental(resourceManager);
|
||||
}
|
||||
|
||||
private Main() {
|
||||
}
|
||||
|
||||
public static void main(final String[] args) {
|
||||
LOGGER.info("Running API generators...");
|
||||
generate(Paths.get(args[0]), Generators.API);
|
||||
// LOGGER.info("Running Server generators...");
|
||||
// generate(Paths.get(args[1]), Generators.SERVER);
|
||||
}
|
||||
|
||||
private static void generate(Path output, SourceGenerator[] generators) {
|
||||
try {
|
||||
if (Files.exists(output)) {
|
||||
PathUtils.deleteDirectory(output);
|
||||
}
|
||||
Files.createDirectories(output);
|
||||
|
||||
for (final SourceGenerator generator : generators) {
|
||||
generator.writeToFile(output);
|
||||
}
|
||||
|
||||
LOGGER.info("Files written to {}", output.toAbsolutePath());
|
||||
} catch (final Exception ex) {
|
||||
throw new RuntimeException(ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,207 +0,0 @@
|
||||
package io.papermc.generator.types;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
import com.squareup.javapoet.FieldSpec;
|
||||
import com.squareup.javapoet.JavaFile;
|
||||
import com.squareup.javapoet.MethodSpec;
|
||||
import com.squareup.javapoet.ParameterSpec;
|
||||
import com.squareup.javapoet.ParameterizedTypeName;
|
||||
import com.squareup.javapoet.TypeName;
|
||||
import com.squareup.javapoet.TypeSpec;
|
||||
import io.papermc.generator.Main;
|
||||
import io.papermc.generator.utils.Annotations;
|
||||
import io.papermc.generator.utils.CollectingContext;
|
||||
import io.papermc.generator.utils.Formatting;
|
||||
import io.papermc.generator.utils.Javadocs;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.IdentityHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import javax.lang.model.SourceVersion;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import net.minecraft.core.Holder;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.core.RegistrySetBuilder;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.data.registries.VanillaRegistries;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.world.flag.FeatureElement;
|
||||
import net.minecraft.world.flag.FeatureFlags;
|
||||
import org.bukkit.MinecraftExperimental;
|
||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
import org.checkerframework.framework.qual.DefaultQualifier;
|
||||
|
||||
import static com.squareup.javapoet.TypeSpec.classBuilder;
|
||||
import static io.papermc.generator.utils.Annotations.EXPERIMENTAL_API_ANNOTATION;
|
||||
import static io.papermc.generator.utils.Annotations.experimentalAnnotations;
|
||||
import static java.util.Objects.requireNonNull;
|
||||
import static javax.lang.model.element.Modifier.FINAL;
|
||||
import static javax.lang.model.element.Modifier.PRIVATE;
|
||||
import static javax.lang.model.element.Modifier.PUBLIC;
|
||||
import static javax.lang.model.element.Modifier.STATIC;
|
||||
|
||||
@DefaultQualifier(NonNull.class)
|
||||
public class GeneratedKeyType<T, A> extends SimpleGenerator {
|
||||
|
||||
private static final Map<ResourceKey<? extends Registry<?>>, RegistrySetBuilder.RegistryBootstrap<?>> VANILLA_REGISTRY_ENTRIES = VanillaRegistries.BUILDER.entries.stream()
|
||||
.collect(Collectors.toMap(RegistrySetBuilder.RegistryStub::key, RegistrySetBuilder.RegistryStub::bootstrap));
|
||||
|
||||
private static final Map<ResourceKey<? extends Registry<?>>, RegistrySetBuilder.RegistryBootstrap<?>> EXPERIMENTAL_REGISTRY_ENTRIES = Map.of(); // Update for Experimental API
|
||||
private static final Map<RegistryKey<?>, String> REGISTRY_KEY_FIELD_NAMES;
|
||||
static {
|
||||
final Map<RegistryKey<?>, String> map = new HashMap<>();
|
||||
try {
|
||||
for (final Field field : RegistryKey.class.getFields()) {
|
||||
if (!Modifier.isStatic(field.getModifiers()) || !Modifier.isFinal(field.getModifiers()) || field.getType() != RegistryKey.class) {
|
||||
continue;
|
||||
}
|
||||
map.put((RegistryKey<?>) field.get(null), field.getName());
|
||||
}
|
||||
REGISTRY_KEY_FIELD_NAMES = Map.copyOf(map);
|
||||
} catch (final ReflectiveOperationException ex) {
|
||||
throw new RuntimeException(ex);
|
||||
}
|
||||
}
|
||||
|
||||
private static final String CREATE_JAVADOC = """
|
||||
Creates a key for {@link $T} in the registry {@code $L}.
|
||||
|
||||
@param key the value's key in the registry
|
||||
@return a new typed key
|
||||
""";
|
||||
|
||||
private final Class<A> apiType;
|
||||
private final ResourceKey<? extends Registry<T>> registryKey;
|
||||
private final RegistryKey<A> apiRegistryKey;
|
||||
private final boolean publicCreateKeyMethod;
|
||||
|
||||
public GeneratedKeyType(final String keysClassName, final Class<A> apiType, final String pkg, final ResourceKey<? extends Registry<T>> registryKey, final RegistryKey<A> apiRegistryKey, final boolean publicCreateKeyMethod) {
|
||||
super(keysClassName, pkg);
|
||||
this.apiType = apiType;
|
||||
this.registryKey = registryKey;
|
||||
this.apiRegistryKey = apiRegistryKey;
|
||||
this.publicCreateKeyMethod = publicCreateKeyMethod;
|
||||
}
|
||||
|
||||
private MethodSpec.Builder createMethod(final TypeName returnType) {
|
||||
final TypeName keyType = TypeName.get(Key.class);
|
||||
|
||||
final ParameterSpec keyParam = ParameterSpec.builder(keyType, "key", FINAL).build();
|
||||
final MethodSpec.Builder create = MethodSpec.methodBuilder("create")
|
||||
.addModifiers(this.publicCreateKeyMethod ? PUBLIC : PRIVATE, STATIC)
|
||||
.addParameter(keyParam)
|
||||
.addCode("return $T.create($T.$L, $N);", TypedKey.class, RegistryKey.class, requireNonNull(REGISTRY_KEY_FIELD_NAMES.get(this.apiRegistryKey), "Missing field for " + this.apiRegistryKey), keyParam)
|
||||
.returns(returnType);
|
||||
if (this.publicCreateKeyMethod) {
|
||||
create.addAnnotation(EXPERIMENTAL_API_ANNOTATION); // TODO remove once not experimental
|
||||
create.addJavadoc(CREATE_JAVADOC, this.apiType, this.registryKey.location().toString());
|
||||
}
|
||||
return create;
|
||||
}
|
||||
|
||||
private TypeSpec.Builder keyHolderType() {
|
||||
return classBuilder(this.className)
|
||||
.addModifiers(PUBLIC, FINAL)
|
||||
.addJavadoc(Javadocs.getVersionDependentClassHeader("{@link $T#$L}"), RegistryKey.class, REGISTRY_KEY_FIELD_NAMES.get(this.apiRegistryKey))
|
||||
.addAnnotations(Annotations.CLASS_HEADER)
|
||||
.addMethod(MethodSpec.constructorBuilder()
|
||||
.addModifiers(PRIVATE)
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
private static final Map<String, String> JUKEBOX_SONG_NAMES = Map.of(
|
||||
"5", "FIVE",
|
||||
"11", "ELEVEN",
|
||||
"13", "THIRTEEN"
|
||||
);
|
||||
|
||||
@Override
|
||||
protected TypeSpec getTypeSpec() {
|
||||
final TypeName typedKey = ParameterizedTypeName.get(TypedKey.class, this.apiType);
|
||||
|
||||
final TypeSpec.Builder typeBuilder = this.keyHolderType();
|
||||
final MethodSpec.Builder createMethod = this.createMethod(typedKey);
|
||||
|
||||
final Registry<T> registry = Main.REGISTRY_ACCESS.lookupOrThrow(this.registryKey);
|
||||
final Set<ResourceKey<T>> experimental = this.collectExperimentalKeys(registry);
|
||||
|
||||
boolean allExperimental = true;
|
||||
for (final Holder.Reference<T> reference : registry.listElements().sorted(Formatting.alphabeticKeyOrder(reference -> reference.key().location().getPath())).toList()) {
|
||||
final ResourceKey<T> key = reference.key();
|
||||
final String keyPath = key.location().getPath();
|
||||
String fieldName = Formatting.formatKeyAsField(keyPath);
|
||||
if (!SourceVersion.isIdentifier(fieldName) && this.registryKey.equals(Registries.JUKEBOX_SONG) && JUKEBOX_SONG_NAMES.containsKey(fieldName)) {
|
||||
fieldName = JUKEBOX_SONG_NAMES.get(fieldName);
|
||||
}
|
||||
|
||||
final FieldSpec.Builder fieldBuilder = FieldSpec.builder(typedKey, fieldName, PUBLIC, STATIC, FINAL)
|
||||
.initializer("$N(key($S))", createMethod.build(), keyPath)
|
||||
.addJavadoc(Javadocs.getVersionDependentField("{@code $L}"), key.location().toString());
|
||||
if (experimental.contains(key)) {
|
||||
fieldBuilder.addAnnotations(experimentalAnnotations(null)); // Update for Experimental API
|
||||
} else {
|
||||
allExperimental = false;
|
||||
}
|
||||
typeBuilder.addField(fieldBuilder.build());
|
||||
}
|
||||
if (allExperimental) {
|
||||
typeBuilder.addAnnotations(experimentalAnnotations(null)); // Update for Experimental API
|
||||
createMethod.addAnnotations(experimentalAnnotations(null)); // Update for Experimental API
|
||||
} else {
|
||||
typeBuilder.addAnnotation(EXPERIMENTAL_API_ANNOTATION); // TODO experimental API
|
||||
}
|
||||
return typeBuilder.addMethod(createMethod.build()).build();
|
||||
}
|
||||
|
||||
// todo at some point this should be per feature data pack not all merged
|
||||
private Set<ResourceKey<T>> collectExperimentalKeys(final Registry<T> registry) {
|
||||
if (FeatureElement.FILTERED_REGISTRIES.contains(registry.key())) {
|
||||
return this.collectExperimentalKeysBuiltIn(registry);
|
||||
} else {
|
||||
return this.collectExperimentalKeysDataDriven(registry);
|
||||
}
|
||||
}
|
||||
|
||||
private Set<ResourceKey<T>> collectExperimentalKeysBuiltIn(final Registry<T> registry) {
|
||||
final HolderLookup.RegistryLookup<T> filteredLookup = registry.filterElements(v -> {
|
||||
return v instanceof final FeatureElement featureElement && FeatureFlags.isExperimental(featureElement.requiredFeatures()); // Update for Experimental API
|
||||
});
|
||||
return filteredLookup.listElementIds().collect(Collectors.toUnmodifiableSet());
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private Set<ResourceKey<T>> collectExperimentalKeysDataDriven(final Registry<T> registry) {
|
||||
final RegistrySetBuilder.@Nullable RegistryBootstrap<T> experimentalBootstrap = (RegistrySetBuilder.RegistryBootstrap<T>) EXPERIMENTAL_REGISTRY_ENTRIES.get(this.registryKey);
|
||||
if (experimentalBootstrap == null) {
|
||||
return Collections.emptySet();
|
||||
}
|
||||
final Set<ResourceKey<T>> experimental = Collections.newSetFromMap(new IdentityHashMap<>());
|
||||
final CollectingContext<T> experimentalCollector = new CollectingContext<>(experimental, registry);
|
||||
experimentalBootstrap.run(experimentalCollector);
|
||||
|
||||
final RegistrySetBuilder.@Nullable RegistryBootstrap<T> vanillaBootstrap = (RegistrySetBuilder.RegistryBootstrap<T>) VANILLA_REGISTRY_ENTRIES.get(this.registryKey);
|
||||
if (vanillaBootstrap != null) {
|
||||
final Set<ResourceKey<T>> vanilla = Collections.newSetFromMap(new IdentityHashMap<>());
|
||||
final CollectingContext<T> vanillaCollector = new CollectingContext<>(vanilla, registry);
|
||||
vanillaBootstrap.run(vanillaCollector);
|
||||
return Sets.difference(experimental, vanilla);
|
||||
}
|
||||
return experimental;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JavaFile.Builder file(final JavaFile.Builder builder) {
|
||||
return builder
|
||||
.addStaticImport(Key.class, "key");
|
||||
}
|
||||
}
|
||||
-138
@@ -1,138 +0,0 @@
|
||||
package io.papermc.generator.types;
|
||||
|
||||
import com.squareup.javapoet.FieldSpec;
|
||||
import com.squareup.javapoet.JavaFile;
|
||||
import com.squareup.javapoet.MethodSpec;
|
||||
import com.squareup.javapoet.ParameterSpec;
|
||||
import com.squareup.javapoet.ParameterizedTypeName;
|
||||
import com.squareup.javapoet.TypeName;
|
||||
import com.squareup.javapoet.TypeSpec;
|
||||
import io.papermc.generator.Main;
|
||||
import io.papermc.generator.utils.Annotations;
|
||||
import io.papermc.generator.utils.Formatting;
|
||||
import io.papermc.generator.utils.Javadocs;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.tag.TagKey;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import org.bukkit.MinecraftExperimental;
|
||||
|
||||
import static com.squareup.javapoet.TypeSpec.classBuilder;
|
||||
import static io.papermc.generator.utils.Annotations.EXPERIMENTAL_API_ANNOTATION;
|
||||
import static io.papermc.generator.utils.Annotations.experimentalAnnotations;
|
||||
import static java.util.Objects.requireNonNull;
|
||||
import static javax.lang.model.element.Modifier.FINAL;
|
||||
import static javax.lang.model.element.Modifier.PRIVATE;
|
||||
import static javax.lang.model.element.Modifier.PUBLIC;
|
||||
import static javax.lang.model.element.Modifier.STATIC;
|
||||
|
||||
public class GeneratedTagKeyType<T, A> extends SimpleGenerator {
|
||||
|
||||
private static final Map<RegistryKey<?>, String> REGISTRY_KEY_FIELD_NAMES;
|
||||
static {
|
||||
final Map<RegistryKey<?>, String> map = new HashMap<>();
|
||||
try {
|
||||
for (final Field field : RegistryKey.class.getFields()) {
|
||||
if (!Modifier.isStatic(field.getModifiers()) || !Modifier.isFinal(field.getModifiers()) || field.getType() != RegistryKey.class) {
|
||||
continue;
|
||||
}
|
||||
map.put((RegistryKey<?>) field.get(null), field.getName());
|
||||
}
|
||||
REGISTRY_KEY_FIELD_NAMES = Map.copyOf(map);
|
||||
} catch (final ReflectiveOperationException ex) {
|
||||
throw new RuntimeException(ex);
|
||||
}
|
||||
}
|
||||
|
||||
private static final String CREATE_JAVADOC = """
|
||||
Creates a tag key for {@link $T} in the registry {@code $L}.
|
||||
|
||||
@param key the tag key's key
|
||||
@return a new tag key
|
||||
""";
|
||||
|
||||
private final Class<A> apiType;
|
||||
private final ResourceKey<? extends Registry<T>> registryKey;
|
||||
private final RegistryKey<A> apiRegistryKey;
|
||||
private final boolean publicCreateKeyMethod;
|
||||
|
||||
public GeneratedTagKeyType(final String keysClassName, final Class<A> apiType, final String pkg, final ResourceKey<? extends Registry<T>> registryKey, final RegistryKey<A> apiRegistryKey, final boolean publicCreateKeyMethod) {
|
||||
super(keysClassName, pkg);
|
||||
this.apiType = apiType;
|
||||
this.registryKey = registryKey;
|
||||
this.apiRegistryKey = apiRegistryKey;
|
||||
this.publicCreateKeyMethod = publicCreateKeyMethod;
|
||||
}
|
||||
|
||||
private MethodSpec.Builder createMethod(final TypeName returnType) {
|
||||
final TypeName keyType = TypeName.get(Key.class);
|
||||
|
||||
final ParameterSpec keyParam = ParameterSpec.builder(keyType, "key", FINAL).build();
|
||||
final MethodSpec.Builder create = MethodSpec.methodBuilder("create")
|
||||
.addModifiers(this.publicCreateKeyMethod ? PUBLIC : PRIVATE, STATIC)
|
||||
.addParameter(keyParam)
|
||||
.addCode("return $T.create($T.$L, $N);", TagKey.class, RegistryKey.class, requireNonNull(REGISTRY_KEY_FIELD_NAMES.get(this.apiRegistryKey), "Missing field for " + this.apiRegistryKey), keyParam)
|
||||
.returns(returnType);
|
||||
if (this.publicCreateKeyMethod) {
|
||||
create.addAnnotation(EXPERIMENTAL_API_ANNOTATION); // TODO remove once not experimental
|
||||
create.addJavadoc(CREATE_JAVADOC, this.apiType, this.registryKey.location().toString());
|
||||
}
|
||||
return create;
|
||||
}
|
||||
|
||||
private TypeSpec.Builder keyHolderType() {
|
||||
return classBuilder(this.className)
|
||||
.addModifiers(PUBLIC, FINAL)
|
||||
.addJavadoc(Javadocs.getVersionDependentClassHeader("{@link $T#$L}"), RegistryKey.class, REGISTRY_KEY_FIELD_NAMES.get(this.apiRegistryKey))
|
||||
.addAnnotations(Annotations.CLASS_HEADER)
|
||||
.addMethod(MethodSpec.constructorBuilder()
|
||||
.addModifiers(PRIVATE)
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected TypeSpec getTypeSpec() {
|
||||
final TypeName tagKey = ParameterizedTypeName.get(TagKey.class, this.apiType);
|
||||
|
||||
final TypeSpec.Builder typeBuilder = this.keyHolderType();
|
||||
final MethodSpec.Builder createMethod = this.createMethod(tagKey);
|
||||
|
||||
final Registry<T> registry = Main.REGISTRY_ACCESS.lookupOrThrow(this.registryKey);
|
||||
|
||||
final AtomicBoolean allExperimental = new AtomicBoolean(true);
|
||||
registry.listTagIds().sorted(Formatting.alphabeticKeyOrder(nmsTagKey -> nmsTagKey.location().getPath())).forEach(nmsTagKey -> {
|
||||
final String fieldName = Formatting.formatKeyAsField(nmsTagKey.location().getPath());
|
||||
final FieldSpec.Builder fieldBuilder = FieldSpec.builder(tagKey, fieldName, PUBLIC, STATIC, FINAL)
|
||||
.initializer("$N(key($S))", createMethod.build(), nmsTagKey.location().getPath())
|
||||
.addJavadoc(Javadocs.getVersionDependentField("{@code $L}"), "#" + nmsTagKey.location());
|
||||
final String featureFlagName = Main.EXPERIMENTAL_TAGS.get(nmsTagKey);
|
||||
if (featureFlagName != null) {
|
||||
fieldBuilder.addAnnotations(experimentalAnnotations(MinecraftExperimental.Requires.valueOf(featureFlagName.toUpperCase(Locale.ENGLISH)))); // Update for Experimental API
|
||||
} else {
|
||||
allExperimental.set(false);
|
||||
}
|
||||
typeBuilder.addField(fieldBuilder.build());
|
||||
});
|
||||
if (allExperimental.get()) {
|
||||
typeBuilder.addAnnotations(experimentalAnnotations(null)); // Update for Experimental API
|
||||
createMethod.addAnnotations(experimentalAnnotations(null)); // Update for Experimental API
|
||||
} else {
|
||||
typeBuilder.addAnnotation(EXPERIMENTAL_API_ANNOTATION); // TODO experimental API
|
||||
}
|
||||
return typeBuilder.addMethod(createMethod.build()).build();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JavaFile.Builder file(final JavaFile.Builder builder) {
|
||||
return builder
|
||||
.addStaticImport(Key.class, "key");
|
||||
}
|
||||
}
|
||||
@@ -1,336 +0,0 @@
|
||||
package io.papermc.generator.types.goal;
|
||||
|
||||
import com.destroystokyo.paper.entity.RangedEntity;
|
||||
import com.destroystokyo.paper.entity.ai.GoalKey;
|
||||
import com.google.common.collect.BiMap;
|
||||
import com.google.common.collect.HashBiMap;
|
||||
import net.minecraft.world.entity.FlyingMob;
|
||||
import net.minecraft.world.entity.PathfinderMob;
|
||||
import net.minecraft.world.entity.TamableAnimal;
|
||||
import net.minecraft.world.entity.ai.goal.Goal;
|
||||
import net.minecraft.world.entity.ambient.AmbientCreature;
|
||||
import net.minecraft.world.entity.animal.AbstractFish;
|
||||
import net.minecraft.world.entity.animal.AbstractGolem;
|
||||
import net.minecraft.world.entity.animal.AbstractSchoolingFish;
|
||||
import net.minecraft.world.entity.animal.Animal;
|
||||
import net.minecraft.world.entity.animal.Pufferfish;
|
||||
import net.minecraft.world.entity.animal.ShoulderRidingEntity;
|
||||
import net.minecraft.world.entity.animal.SnowGolem;
|
||||
import net.minecraft.world.entity.animal.WaterAnimal;
|
||||
import net.minecraft.world.entity.animal.horse.AbstractChestedHorse;
|
||||
import net.minecraft.world.entity.boss.wither.WitherBoss;
|
||||
import net.minecraft.world.entity.monster.AbstractIllager;
|
||||
import net.minecraft.world.entity.monster.EnderMan;
|
||||
import net.minecraft.world.entity.monster.PatrollingMonster;
|
||||
import net.minecraft.world.entity.monster.RangedAttackMob;
|
||||
import net.minecraft.world.entity.monster.SpellcasterIllager;
|
||||
import net.minecraft.world.entity.monster.ZombifiedPiglin;
|
||||
import net.minecraft.world.entity.monster.piglin.AbstractPiglin;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.entity.AbstractHorse;
|
||||
import org.bukkit.entity.AbstractSkeleton;
|
||||
import org.bukkit.entity.AbstractVillager;
|
||||
import org.bukkit.entity.Ageable;
|
||||
import org.bukkit.entity.Ambient;
|
||||
import org.bukkit.entity.Animals;
|
||||
import org.bukkit.entity.Bat;
|
||||
import org.bukkit.entity.Bee;
|
||||
import org.bukkit.entity.Blaze;
|
||||
import org.bukkit.entity.Cat;
|
||||
import org.bukkit.entity.CaveSpider;
|
||||
import org.bukkit.entity.ChestedHorse;
|
||||
import org.bukkit.entity.Chicken;
|
||||
import org.bukkit.entity.Cod;
|
||||
import org.bukkit.entity.Cow;
|
||||
import org.bukkit.entity.Creature;
|
||||
import org.bukkit.entity.Creeper;
|
||||
import org.bukkit.entity.Dolphin;
|
||||
import org.bukkit.entity.Donkey;
|
||||
import org.bukkit.entity.Drowned;
|
||||
import org.bukkit.entity.ElderGuardian;
|
||||
import org.bukkit.entity.EnderDragon;
|
||||
import org.bukkit.entity.Enderman;
|
||||
import org.bukkit.entity.Endermite;
|
||||
import org.bukkit.entity.Evoker;
|
||||
import org.bukkit.entity.Fish;
|
||||
import org.bukkit.entity.Flying;
|
||||
import org.bukkit.entity.Fox;
|
||||
import org.bukkit.entity.Ghast;
|
||||
import org.bukkit.entity.Giant;
|
||||
import org.bukkit.entity.Golem;
|
||||
import org.bukkit.entity.Guardian;
|
||||
import org.bukkit.entity.Hoglin;
|
||||
import org.bukkit.entity.Horse;
|
||||
import org.bukkit.entity.Husk;
|
||||
import org.bukkit.entity.Illager;
|
||||
import org.bukkit.entity.Illusioner;
|
||||
import org.bukkit.entity.IronGolem;
|
||||
import org.bukkit.entity.Llama;
|
||||
import org.bukkit.entity.MagmaCube;
|
||||
import org.bukkit.entity.Mob;
|
||||
import org.bukkit.entity.Monster;
|
||||
import org.bukkit.entity.Mule;
|
||||
import org.bukkit.entity.MushroomCow;
|
||||
import org.bukkit.entity.Ocelot;
|
||||
import org.bukkit.entity.Panda;
|
||||
import org.bukkit.entity.Parrot;
|
||||
import org.bukkit.entity.Phantom;
|
||||
import org.bukkit.entity.Pig;
|
||||
import org.bukkit.entity.PigZombie;
|
||||
import org.bukkit.entity.Piglin;
|
||||
import org.bukkit.entity.PiglinAbstract;
|
||||
import org.bukkit.entity.PiglinBrute;
|
||||
import org.bukkit.entity.Pillager;
|
||||
import org.bukkit.entity.PolarBear;
|
||||
import org.bukkit.entity.PufferFish;
|
||||
import org.bukkit.entity.Rabbit;
|
||||
import org.bukkit.entity.Raider;
|
||||
import org.bukkit.entity.Ravager;
|
||||
import org.bukkit.entity.Salmon;
|
||||
import org.bukkit.entity.Sheep;
|
||||
import org.bukkit.entity.Shulker;
|
||||
import org.bukkit.entity.Silverfish;
|
||||
import org.bukkit.entity.Skeleton;
|
||||
import org.bukkit.entity.SkeletonHorse;
|
||||
import org.bukkit.entity.Slime;
|
||||
import org.bukkit.entity.Snowman;
|
||||
import org.bukkit.entity.Spellcaster;
|
||||
import org.bukkit.entity.Spider;
|
||||
import org.bukkit.entity.Squid;
|
||||
import org.bukkit.entity.Stray;
|
||||
import org.bukkit.entity.Strider;
|
||||
import org.bukkit.entity.Tameable;
|
||||
import org.bukkit.entity.TraderLlama;
|
||||
import org.bukkit.entity.TropicalFish;
|
||||
import org.bukkit.entity.Turtle;
|
||||
import org.bukkit.entity.Vex;
|
||||
import org.bukkit.entity.Villager;
|
||||
import org.bukkit.entity.Vindicator;
|
||||
import org.bukkit.entity.WanderingTrader;
|
||||
import org.bukkit.entity.WaterMob;
|
||||
import org.bukkit.entity.Witch;
|
||||
import org.bukkit.entity.Wither;
|
||||
import org.bukkit.entity.WitherSkeleton;
|
||||
import org.bukkit.entity.Wolf;
|
||||
import org.bukkit.entity.Zoglin;
|
||||
import org.bukkit.entity.Zombie;
|
||||
import org.bukkit.entity.ZombieHorse;
|
||||
import org.bukkit.entity.ZombieVillager;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
public class MobGoalNames {
|
||||
|
||||
private static final Map<Class<? extends Goal>, Class<? extends Mob>> entityClassCache = new HashMap<>();
|
||||
public static final Map<Class<? extends net.minecraft.world.entity.Mob>, Class<? extends Mob>> bukkitMap = new HashMap<>();
|
||||
|
||||
|
||||
static {
|
||||
//<editor-fold defaultstate="collapsed" desc="bukkitMap Entities">
|
||||
bukkitMap.put(net.minecraft.world.entity.Mob.class, Mob.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.AgeableMob.class, Ageable.class);
|
||||
bukkitMap.put(AmbientCreature.class, Ambient.class);
|
||||
bukkitMap.put(Animal.class, Animals.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.ambient.Bat.class, Bat.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.Bee.class, Bee.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Blaze.class, Blaze.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.Cat.class, Cat.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.CaveSpider.class, CaveSpider.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.Chicken.class, Chicken.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.Cod.class, Cod.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.Cow.class, Cow.class);
|
||||
bukkitMap.put(PathfinderMob.class, Creature.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Creeper.class, Creeper.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.Dolphin.class, Dolphin.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Drowned.class, Drowned.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.boss.enderdragon.EnderDragon.class, EnderDragon.class);
|
||||
bukkitMap.put(EnderMan.class, Enderman.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Endermite.class, Endermite.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Evoker.class, Evoker.class);
|
||||
bukkitMap.put(AbstractFish.class, Fish.class);
|
||||
bukkitMap.put(AbstractSchoolingFish.class, io.papermc.paper.entity.SchoolableFish.class);
|
||||
bukkitMap.put(FlyingMob.class, Flying.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.Fox.class, Fox.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Ghast.class, Ghast.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Giant.class, Giant.class);
|
||||
bukkitMap.put(AbstractGolem.class, Golem.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Guardian.class, Guardian.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.ElderGuardian.class, ElderGuardian.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.horse.Horse.class, Horse.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.horse.AbstractHorse.class, AbstractHorse.class);
|
||||
bukkitMap.put(AbstractChestedHorse.class, ChestedHorse.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.horse.Donkey.class, Donkey.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.horse.Mule.class, Mule.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.horse.SkeletonHorse.class, SkeletonHorse.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.horse.ZombieHorse.class, ZombieHorse.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.camel.Camel.class, org.bukkit.entity.Camel.class);
|
||||
bukkitMap.put(AbstractIllager.class, Illager.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Illusioner.class, Illusioner.class);
|
||||
bukkitMap.put(SpellcasterIllager.class, Spellcaster.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.IronGolem.class, IronGolem.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.horse.Llama.class, Llama.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.horse.TraderLlama.class, TraderLlama.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.MagmaCube.class, MagmaCube.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Monster.class, Monster.class);
|
||||
bukkitMap.put(PatrollingMonster.class, Raider.class); // close enough
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.MushroomCow.class, MushroomCow.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.Ocelot.class, Ocelot.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.Panda.class, Panda.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.Parrot.class, Parrot.class);
|
||||
bukkitMap.put(ShoulderRidingEntity.class, Parrot.class); // close enough
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Phantom.class, Phantom.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.Pig.class, Pig.class);
|
||||
bukkitMap.put(ZombifiedPiglin.class, PigZombie.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Pillager.class, Pillager.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.PolarBear.class, PolarBear.class);
|
||||
bukkitMap.put(Pufferfish.class, PufferFish.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.Rabbit.class, Rabbit.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.raid.Raider.class, Raider.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Ravager.class, Ravager.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.Salmon.class, Salmon.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.Sheep.class, Sheep.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Shulker.class, Shulker.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Silverfish.class, Silverfish.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Skeleton.class, Skeleton.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.AbstractSkeleton.class, AbstractSkeleton.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Stray.class, Stray.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.WitherSkeleton.class, WitherSkeleton.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Slime.class, Slime.class);
|
||||
bukkitMap.put(SnowGolem.class, Snowman.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Spider.class, Spider.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.Squid.class, Squid.class);
|
||||
bukkitMap.put(TamableAnimal.class, Tameable.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.TropicalFish.class, TropicalFish.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.Turtle.class, Turtle.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Vex.class, Vex.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.npc.Villager.class, Villager.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.npc.AbstractVillager.class, AbstractVillager.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.npc.WanderingTrader.class, WanderingTrader.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Vindicator.class, Vindicator.class);
|
||||
bukkitMap.put(WaterAnimal.class, WaterMob.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Witch.class, Witch.class);
|
||||
bukkitMap.put(WitherBoss.class, Wither.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.Wolf.class, Wolf.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Zombie.class, Zombie.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Husk.class, Husk.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.ZombieVillager.class, ZombieVillager.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.hoglin.Hoglin.class, Hoglin.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.piglin.Piglin.class, Piglin.class);
|
||||
bukkitMap.put(AbstractPiglin.class, PiglinAbstract.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.piglin.PiglinBrute.class, PiglinBrute.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Strider.class, Strider.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Zoglin.class, Zoglin.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.GlowSquid.class, org.bukkit.entity.GlowSquid.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.axolotl.Axolotl.class, org.bukkit.entity.Axolotl.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.goat.Goat.class, org.bukkit.entity.Goat.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.frog.Frog.class, org.bukkit.entity.Frog.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.frog.Tadpole.class, org.bukkit.entity.Tadpole.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.warden.Warden.class, org.bukkit.entity.Warden.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.allay.Allay.class, org.bukkit.entity.Allay.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.sniffer.Sniffer.class, org.bukkit.entity.Sniffer.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.breeze.Breeze.class, org.bukkit.entity.Breeze.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.armadillo.Armadillo.class, org.bukkit.entity.Armadillo.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.Bogged.class, org.bukkit.entity.Bogged.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.monster.creaking.Creaking.class, org.bukkit.entity.Creaking.class);
|
||||
bukkitMap.put(net.minecraft.world.entity.animal.AgeableWaterCreature.class, org.bukkit.entity.Squid.class); // close enough
|
||||
//</editor-fold>
|
||||
}
|
||||
|
||||
private static final BiMap<String, String> deobfuscationMap = HashBiMap.create();
|
||||
static final Set<String> ignored = new HashSet<>();
|
||||
|
||||
static {
|
||||
deobfuscationMap.put("abstract_skeleton_1", "abstract_skeleton_melee");
|
||||
|
||||
ignored.add("goal_selector_1");
|
||||
ignored.add("goal_selector_2");
|
||||
ignored.add("selector_1");
|
||||
ignored.add("selector_2");
|
||||
ignored.add("wrapped");
|
||||
}
|
||||
|
||||
public static String getUsableName(String name) {
|
||||
final String original = name;
|
||||
name = name.substring(name.lastIndexOf(".") + 1);
|
||||
boolean flag = false;
|
||||
// inner classes
|
||||
if (name.contains("$")) {
|
||||
String cut = name.substring(name.indexOf("$") + 1);
|
||||
if (cut.length() <= 2) {
|
||||
name = name.replace("Entity", "");
|
||||
name = name.replace("$", "_");
|
||||
flag = true;
|
||||
} else {
|
||||
// mapped, wooo
|
||||
name = cut;
|
||||
}
|
||||
}
|
||||
|
||||
name = name.replace("PathfinderGoal", "");
|
||||
name = name.replace("TargetGoal", "");
|
||||
name = name.replace("Goal", "");
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (char c : name.toCharArray()) {
|
||||
if (c >= 'A' && c <= 'Z') {
|
||||
sb.append("_");
|
||||
sb.append(Character.toLowerCase(c));
|
||||
} else {
|
||||
sb.append(c);
|
||||
}
|
||||
}
|
||||
name = sb.toString();
|
||||
name = name.replaceFirst("_", "");
|
||||
|
||||
if (flag && !deobfuscationMap.containsKey(name.toLowerCase(Locale.ROOT)) && !ignored.contains(name)) {
|
||||
System.out.println("need to map " + original + " (" + name.toLowerCase(Locale.ROOT) + ")");
|
||||
}
|
||||
|
||||
// did we rename this key?
|
||||
return deobfuscationMap.getOrDefault(name, name);
|
||||
}
|
||||
|
||||
public static boolean isIgnored(String name) {
|
||||
return ignored.contains(name);
|
||||
}
|
||||
|
||||
|
||||
public static <T extends Mob> GoalKey<T> getKey(String clazzName, Class<? extends Goal> goalClass) {
|
||||
String name = getUsableName(clazzName);
|
||||
if (MobGoalNames.isIgnored(name)) {
|
||||
//noinspection unchecked
|
||||
return (GoalKey<T>) GoalKey.of(Mob.class, NamespacedKey.minecraft(name));
|
||||
}
|
||||
return GoalKey.of(getEntity(goalClass), NamespacedKey.minecraft(name));
|
||||
}
|
||||
|
||||
public static <T extends Mob> Class<T> getEntity(Class<? extends Goal> goalClass) {
|
||||
//noinspection unchecked
|
||||
return (Class<T>) entityClassCache.computeIfAbsent(goalClass, key -> {
|
||||
for (Constructor<?> ctor : key.getDeclaredConstructors()) {
|
||||
for (int i = 0; i < ctor.getParameterCount(); i++) {
|
||||
Class<?> param = ctor.getParameterTypes()[i];
|
||||
if (net.minecraft.world.entity.Mob.class.isAssignableFrom(param)) {
|
||||
//noinspection unchecked
|
||||
return toBukkitClass((Class<? extends net.minecraft.world.entity.Mob>) param);
|
||||
} else if (RangedAttackMob.class.isAssignableFrom(param)) {
|
||||
return RangedEntity.class;
|
||||
}
|
||||
}
|
||||
}
|
||||
throw new RuntimeException("Can't figure out applicable entity for mob goal " + goalClass); // maybe just return EntityInsentient?
|
||||
});
|
||||
}
|
||||
|
||||
public static Class<? extends Mob> toBukkitClass(Class<? extends net.minecraft.world.entity.Mob> nmsClass) {
|
||||
Class<? extends Mob> bukkitClass = bukkitMap.get(nmsClass);
|
||||
if (bukkitClass == null) {
|
||||
throw new RuntimeException("Can't figure out applicable bukkit entity for nms entity " + nmsClass); // maybe just return Mob?
|
||||
}
|
||||
return bukkitClass;
|
||||
}
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
package io.papermc.generator.utils;
|
||||
|
||||
import com.squareup.javapoet.AnnotationSpec;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import net.minecraft.SharedConstants;
|
||||
import org.bukkit.MinecraftExperimental;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
public final class Annotations {
|
||||
|
||||
public static List<AnnotationSpec> experimentalAnnotations(final MinecraftExperimental.@Nullable Requires requiredFeatureFlag) {
|
||||
final List<AnnotationSpec> annotationSpecs = new ArrayList<>();
|
||||
annotationSpecs.add(AnnotationSpec.builder(ApiStatus.Experimental.class).build());
|
||||
if (requiredFeatureFlag != null) {
|
||||
annotationSpecs.add(AnnotationSpec.builder(MinecraftExperimental.class)
|
||||
.addMember("value", "$T.$L", MinecraftExperimental.Requires.class, requiredFeatureFlag.name())
|
||||
.build());
|
||||
} else {
|
||||
annotationSpecs.add(AnnotationSpec.builder(MinecraftExperimental.class).build());
|
||||
}
|
||||
return annotationSpecs;
|
||||
}
|
||||
|
||||
public static AnnotationSpec deprecatedVersioned(final @Nullable String version, final boolean forRemoval) {
|
||||
final AnnotationSpec.Builder annotationSpec = AnnotationSpec.builder(Deprecated.class);
|
||||
if (forRemoval) {
|
||||
annotationSpec.addMember("forRemoval", "$L", true);
|
||||
}
|
||||
if (version != null) {
|
||||
annotationSpec.addMember("since", "$S", version);
|
||||
}
|
||||
|
||||
return annotationSpec.build();
|
||||
}
|
||||
|
||||
public static AnnotationSpec scheduledRemoval(final @Nullable String version) {
|
||||
return AnnotationSpec.builder(ApiStatus.ScheduledForRemoval.class)
|
||||
.addMember("inVersion", "$S", version)
|
||||
.build();
|
||||
}
|
||||
|
||||
@ApiStatus.Experimental
|
||||
public static final AnnotationSpec EXPERIMENTAL_API_ANNOTATION = AnnotationSpec.builder(ApiStatus.Experimental.class).build();
|
||||
public static final AnnotationSpec NULL_MARKED = AnnotationSpec.builder(NullMarked.class).build();
|
||||
private static final AnnotationSpec SUPPRESS_WARNINGS = AnnotationSpec.builder(SuppressWarnings.class)
|
||||
.addMember("value", "$S", "unused")
|
||||
.addMember("value", "$S", "SpellCheckingInspection")
|
||||
.build();
|
||||
private static final AnnotationSpec GENERATED_FROM = AnnotationSpec.builder(GeneratedFrom.class)
|
||||
.addMember("value", "$S", SharedConstants.getCurrentVersion().getName())
|
||||
.build();
|
||||
public static final Iterable<AnnotationSpec> CLASS_HEADER = List.of(
|
||||
SUPPRESS_WARNINGS,
|
||||
GENERATED_FROM,
|
||||
NULL_MARKED
|
||||
);
|
||||
|
||||
private Annotations() {
|
||||
}
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
package io.papermc.generator.utils;
|
||||
|
||||
import com.mojang.serialization.Lifecycle;
|
||||
import io.papermc.generator.Main;
|
||||
import java.util.Set;
|
||||
import net.minecraft.core.Holder;
|
||||
import net.minecraft.core.HolderGetter;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.data.worldgen.BootstrapContext;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||
import org.checkerframework.framework.qual.DefaultQualifier;
|
||||
|
||||
@DefaultQualifier(NonNull.class)
|
||||
public record CollectingContext<T>(Set<ResourceKey<T>> registered,
|
||||
Registry<T> registry) implements BootstrapContext<T> {
|
||||
|
||||
@Override
|
||||
public Holder.Reference<T> register(final ResourceKey<T> resourceKey, final @NonNull T t, final Lifecycle lifecycle) {
|
||||
this.registered.add(resourceKey);
|
||||
return Holder.Reference.createStandAlone(this.registry, resourceKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <S> HolderGetter<S> lookup(final ResourceKey<? extends Registry<? extends S>> resourceKey) {
|
||||
return Main.REGISTRY_ACCESS.lookupOrThrow(resourceKey);
|
||||
}
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
package io.papermc.generator.utils;
|
||||
|
||||
import java.util.Optional;
|
||||
import org.apache.commons.lang3.math.NumberUtils;
|
||||
import java.util.Comparator;
|
||||
import java.util.Locale;
|
||||
import java.util.OptionalInt;
|
||||
import java.util.function.Function;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public final class Formatting {
|
||||
|
||||
private static final Pattern ILLEGAL_FIELD_CHARACTERS = Pattern.compile("[.-/]");
|
||||
|
||||
public static String formatKeyAsField(String path) {
|
||||
return ILLEGAL_FIELD_CHARACTERS.matcher(path.toUpperCase(Locale.ROOT)).replaceAll("_");
|
||||
}
|
||||
|
||||
public static Optional<String> formatTagKey(String tagDir, String resourcePath) {
|
||||
int tagsIndex = resourcePath.indexOf(tagDir);
|
||||
int dotIndex = resourcePath.lastIndexOf('.');
|
||||
if (tagsIndex == -1 || dotIndex == -1) {
|
||||
return Optional.empty();
|
||||
}
|
||||
return Optional.of(resourcePath.substring(tagsIndex + tagDir.length() + 1, dotIndex)); // namespace/tags/registry_key/[tag_key].json
|
||||
}
|
||||
|
||||
public static Comparator<String> ALPHABETIC_KEY_ORDER = alphabeticKeyOrder(path -> path);
|
||||
|
||||
public static <T> Comparator<T> alphabeticKeyOrder(Function<T, String> mapper) {
|
||||
return (o1, o2) -> {
|
||||
String path1 = mapper.apply(o1);
|
||||
String path2 = mapper.apply(o2);
|
||||
|
||||
OptionalInt trailingInt1 = tryParseTrailingInt(path1);
|
||||
OptionalInt trailingInt2 = tryParseTrailingInt(path2);
|
||||
|
||||
if (trailingInt1.isPresent() && trailingInt2.isPresent()) {
|
||||
return Integer.compare(trailingInt1.getAsInt(), trailingInt2.getAsInt());
|
||||
}
|
||||
|
||||
return path1.compareTo(path2);
|
||||
};
|
||||
}
|
||||
|
||||
private static OptionalInt tryParseTrailingInt(String path) {
|
||||
int delimiterIndex = path.lastIndexOf('_');
|
||||
if (delimiterIndex != -1) {
|
||||
String score = path.substring(delimiterIndex + 1);
|
||||
if (NumberUtils.isDigits(score)) {
|
||||
return OptionalInt.of(Integer.parseInt(score));
|
||||
}
|
||||
}
|
||||
return OptionalInt.empty();
|
||||
}
|
||||
|
||||
private Formatting() {
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
package io.papermc.generator.utils;
|
||||
|
||||
public final class Javadocs {
|
||||
|
||||
public static String getVersionDependentClassHeader(String headerIdentifier) {
|
||||
return """
|
||||
Vanilla keys for %s.
|
||||
|
||||
@apiNote The fields provided here are a direct representation of
|
||||
what is available from the vanilla game source. They may be
|
||||
changed (including removals) on any Minecraft version
|
||||
bump, so cross-version compatibility is not provided on the
|
||||
same level as it is on most of the other API.
|
||||
""".formatted(headerIdentifier);
|
||||
}
|
||||
|
||||
public static String getVersionDependentField(String headerIdentifier) {
|
||||
return """
|
||||
%s
|
||||
|
||||
@apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
""".formatted(headerIdentifier);
|
||||
}
|
||||
|
||||
private Javadocs() {
|
||||
}
|
||||
}
|
||||
@@ -1,79 +0,0 @@
|
||||
package io.papermc.generator.utils;
|
||||
|
||||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
import com.mojang.logging.LogUtils;
|
||||
import io.papermc.generator.Main;
|
||||
import java.util.Collections;
|
||||
import java.util.IdentityHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.BiConsumer;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.core.RegistryAccess;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.server.packs.PackResources;
|
||||
import net.minecraft.server.packs.PackType;
|
||||
import net.minecraft.server.packs.repository.BuiltInPackSource;
|
||||
import net.minecraft.server.packs.resources.MultiPackResourceManager;
|
||||
import net.minecraft.tags.TagKey;
|
||||
import org.slf4j.Logger;
|
||||
|
||||
// collect all the tags by grabbing the json from the data-packs
|
||||
// another (probably) way is to hook into the data generator like the typed keys generator
|
||||
public final class TagCollector {
|
||||
|
||||
private static final Logger LOGGER = LogUtils.getLogger();
|
||||
|
||||
public static Map<TagKey<?>, String> grabExperimental(final MultiPackResourceManager resourceManager) {
|
||||
Map<TagKey<?>, String> result = new IdentityHashMap<>();
|
||||
|
||||
// collect all vanilla tags
|
||||
Multimap<ResourceKey<? extends Registry<?>>, String> vanillaTags = HashMultimap.create();
|
||||
PackResources vanillaPack = resourceManager.listPacks()
|
||||
.filter(packResources -> packResources.packId().equals(BuiltInPackSource.VANILLA_ID))
|
||||
.findFirst()
|
||||
.orElseThrow();
|
||||
collectFromPack(vanillaPack, (entry, path) -> vanillaTags.put(entry.key(), path));
|
||||
|
||||
// then distinct with other data-pack tags to know for sure newly created tags and so experimental one
|
||||
resourceManager.listPacks().forEach(pack -> {
|
||||
String packId = pack.packId();
|
||||
if (packId.equals(BuiltInPackSource.VANILLA_ID)) return;
|
||||
|
||||
collectFromPack(pack, (entry, path) -> {
|
||||
if (vanillaTags.get(entry.key()).contains(path)) {
|
||||
return;
|
||||
}
|
||||
|
||||
result.put(entry.value().listTagIds()
|
||||
.filter(tagKey -> tagKey.location().getPath().equals(path))
|
||||
.findFirst()
|
||||
.orElseThrow(), packId);
|
||||
});
|
||||
});
|
||||
return Collections.unmodifiableMap(result);
|
||||
}
|
||||
|
||||
private static void collectFromPack(PackResources pack, BiConsumer<RegistryAccess.RegistryEntry<?>, String> output) {
|
||||
Set<String> namespaces = pack.getNamespaces(PackType.SERVER_DATA);
|
||||
|
||||
for (String namespace : namespaces) {
|
||||
Main.REGISTRY_ACCESS.registries().forEach(entry -> {
|
||||
// this is probably expensive but can't find another way around and data-pack loader has similar logic
|
||||
// the issue is that registry key can have parent/key (and custom folder too) but tag key can also have parent/key so parsing become a mess
|
||||
// without having at least one of the two values
|
||||
String tagDir = Registries.tagsDirPath(entry.key());
|
||||
pack.listResources(PackType.SERVER_DATA, namespace, tagDir, (id, supplier) -> {
|
||||
Formatting.formatTagKey(tagDir, id.getPath()).ifPresentOrElse(path -> output.accept(entry, path), () -> {
|
||||
LOGGER.warn("Unable to parse the path: {}/{}/{}.json in the data-pack {} into a tag key", namespace, tagDir, id.getPath(), pack.packId());
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private TagCollector() {
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
# for auto-marking experimental stuff
|
||||
public net/minecraft/core/RegistrySetBuilder entries
|
||||
public net/minecraft/core/RegistrySetBuilder$RegistryStub
|
||||
public net/minecraft/data/registries/VanillaRegistries BUILDER
|
||||
public net/minecraft/data/registries/WinterDropRegistries BUILDER
|
||||
public net/minecraft/data/registries/TradeRebalanceRegistries BUILDER
|
||||
@@ -0,0 +1,31 @@
|
||||
<!DOCTYPE module PUBLIC
|
||||
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
|
||||
"https://checkstyle.org/dtds/configuration_1_3.dtd">
|
||||
<module name="Checker">
|
||||
<!--Single Suppression Filters-->
|
||||
<module name="io.papermc.checkstyle.filters.BetterSuppressionSingleFilter">
|
||||
<property name="checks" value="Javadoc(Method|Type)"/>
|
||||
<property name="messageKey" value="javadoc\.unknownTag"/>
|
||||
<!--[A-Z].* check is for java annotations inside code blocks inside Javadocs-->
|
||||
<property name="arguments" value="(${custom_javadoc_tags}|[A-Z].*)"/>
|
||||
</module>
|
||||
<module name="TreeWalker">
|
||||
<!--Skip generated content by typewriter-->
|
||||
<module name="SuppressionCommentFilter">
|
||||
<property name="offCommentFormat" value="Start generate - \w+$"/>
|
||||
<property name="onCommentFormat" value="End generate - \w+$"/>
|
||||
</module>
|
||||
<module name="JavadocVariable">
|
||||
<!--requires on public fields-->
|
||||
<property name="accessModifiers" value="public"/>
|
||||
</module>
|
||||
<module name="MissingJavadocMethod">
|
||||
<property name="allowedAnnotations" value="Override, ApiStatus.Internal"/>
|
||||
<property name="ignoreMethodNamesRegex" value="^getHandlerList$"/>
|
||||
</module>
|
||||
<module name="MissingJavadocPackage"/>
|
||||
<module name="MissingJavadocType">
|
||||
<property name="skipAnnotations" value="Generated, ApiStatus.Internal"/>
|
||||
</module>
|
||||
</module>
|
||||
</module>
|
||||
@@ -0,0 +1,201 @@
|
||||
paper-api/src/generated/java/com/destroystokyo/paper/entity/ai/
|
||||
paper-api/src/generated/java/io/papermc/paper/registry/keys/
|
||||
paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/
|
||||
paper-api/src/main/java/co/aikar/timings/
|
||||
paper-api/src/main/java/co/aikar/util/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/block/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/brigadier/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/entity/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/entity/ai/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/entity/villager/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/event/block/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/event/brigadier/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/event/entity/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/event/inventory/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/event/player/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/event/profile/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/event/server/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/exception/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/inventory/meta/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/loottable/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/network/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/profile/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/util/
|
||||
paper-api/src/main/java/com/destroystokyo/paper/utils/
|
||||
paper-api/src/main/java/io/papermc/paper/advancement/
|
||||
paper-api/src/main/java/io/papermc/paper/annotation/
|
||||
paper-api/src/main/java/io/papermc/paper/ban/
|
||||
paper-api/src/main/java/io/papermc/paper/block/
|
||||
paper-api/src/main/java/io/papermc/paper/block/bed/
|
||||
paper-api/src/main/java/io/papermc/paper/block/fluid/
|
||||
paper-api/src/main/java/io/papermc/paper/block/fluid/type/
|
||||
paper-api/src/main/java/io/papermc/paper/brigadier/
|
||||
paper-api/src/main/java/io/papermc/paper/chat/
|
||||
paper-api/src/main/java/io/papermc/paper/command/
|
||||
paper-api/src/main/java/io/papermc/paper/command/brigadier/
|
||||
paper-api/src/main/java/io/papermc/paper/command/brigadier/argument/
|
||||
paper-api/src/main/java/io/papermc/paper/command/brigadier/argument/position/
|
||||
paper-api/src/main/java/io/papermc/paper/command/brigadier/argument/predicate/
|
||||
paper-api/src/main/java/io/papermc/paper/command/brigadier/argument/range/
|
||||
paper-api/src/main/java/io/papermc/paper/command/brigadier/argument/resolvers/
|
||||
paper-api/src/main/java/io/papermc/paper/command/brigadier/argument/resolvers/selector/
|
||||
paper-api/src/main/java/io/papermc/paper/configuration/
|
||||
paper-api/src/main/java/io/papermc/paper/connection/
|
||||
paper-api/src/main/java/io/papermc/paper/datacomponent/
|
||||
paper-api/src/main/java/io/papermc/paper/datacomponent/item/
|
||||
paper-api/src/main/java/io/papermc/paper/datacomponent/item/attribute/
|
||||
paper-api/src/main/java/io/papermc/paper/datacomponent/item/blocksattacks/
|
||||
paper-api/src/main/java/io/papermc/paper/datacomponent/item/consumable/
|
||||
paper-api/src/main/java/io/papermc/paper/datapack/
|
||||
paper-api/src/main/java/io/papermc/paper/dialog/
|
||||
paper-api/src/main/java/io/papermc/paper/enchantments/
|
||||
paper-api/src/main/java/io/papermc/paper/entity/
|
||||
paper-api/src/main/java/io/papermc/paper/entity/poi/
|
||||
paper-api/src/main/java/io/papermc/paper/event/block/
|
||||
paper-api/src/main/java/io/papermc/paper/event/connection/
|
||||
paper-api/src/main/java/io/papermc/paper/event/connection/configuration/
|
||||
paper-api/src/main/java/io/papermc/paper/event/entity/
|
||||
paper-api/src/main/java/io/papermc/paper/event/executor/
|
||||
paper-api/src/main/java/io/papermc/paper/event/inventory/
|
||||
paper-api/src/main/java/io/papermc/paper/event/packet/
|
||||
paper-api/src/main/java/io/papermc/paper/event/player/
|
||||
paper-api/src/main/java/io/papermc/paper/event/server/
|
||||
paper-api/src/main/java/io/papermc/paper/event/world/
|
||||
paper-api/src/main/java/io/papermc/paper/event/world/border/
|
||||
paper-api/src/main/java/io/papermc/paper/generated/
|
||||
paper-api/src/main/java/io/papermc/paper/inventory/
|
||||
paper-api/src/main/java/io/papermc/paper/inventory/tooltip/
|
||||
paper-api/src/main/java/io/papermc/paper/item/
|
||||
paper-api/src/main/java/io/papermc/paper/persistence/
|
||||
paper-api/src/main/java/io/papermc/paper/plugin/
|
||||
paper-api/src/main/java/io/papermc/paper/plugin/bootstrap/
|
||||
paper-api/src/main/java/io/papermc/paper/plugin/configuration/
|
||||
paper-api/src/main/java/io/papermc/paper/plugin/lifecycle/event/
|
||||
paper-api/src/main/java/io/papermc/paper/plugin/lifecycle/event/handler/
|
||||
paper-api/src/main/java/io/papermc/paper/plugin/lifecycle/event/handler/configuration/
|
||||
paper-api/src/main/java/io/papermc/paper/plugin/lifecycle/event/registrar/
|
||||
paper-api/src/main/java/io/papermc/paper/plugin/lifecycle/event/types/
|
||||
paper-api/src/main/java/io/papermc/paper/plugin/loader/
|
||||
paper-api/src/main/java/io/papermc/paper/plugin/loader/library/
|
||||
paper-api/src/main/java/io/papermc/paper/plugin/loader/library/impl/
|
||||
paper-api/src/main/java/io/papermc/paper/plugin/provider/classloader/
|
||||
paper-api/src/main/java/io/papermc/paper/plugin/provider/entrypoint/
|
||||
paper-api/src/main/java/io/papermc/paper/plugin/provider/util/
|
||||
paper-api/src/main/java/io/papermc/paper/potion/
|
||||
paper-api/src/main/java/io/papermc/paper/raytracing/
|
||||
paper-api/src/main/java/io/papermc/paper/registry/
|
||||
paper-api/src/main/java/io/papermc/paper/registry/data/
|
||||
paper-api/src/main/java/io/papermc/paper/registry/data/client/
|
||||
paper-api/src/main/java/io/papermc/paper/registry/data/dialog/
|
||||
paper-api/src/main/java/io/papermc/paper/registry/data/dialog/action/
|
||||
paper-api/src/main/java/io/papermc/paper/registry/data/dialog/body/
|
||||
paper-api/src/main/java/io/papermc/paper/registry/data/dialog/input/
|
||||
paper-api/src/main/java/io/papermc/paper/registry/data/dialog/type/
|
||||
paper-api/src/main/java/io/papermc/paper/registry/event/
|
||||
paper-api/src/main/java/io/papermc/paper/registry/event/type/
|
||||
paper-api/src/main/java/io/papermc/paper/registry/holder/
|
||||
paper-api/src/main/java/io/papermc/paper/registry/set/
|
||||
paper-api/src/main/java/io/papermc/paper/registry/tag/
|
||||
paper-api/src/main/java/io/papermc/paper/scoreboard/numbers/
|
||||
paper-api/src/main/java/io/papermc/paper/tag/
|
||||
paper-api/src/main/java/io/papermc/paper/text/
|
||||
paper-api/src/main/java/io/papermc/paper/threadedregions/
|
||||
paper-api/src/main/java/io/papermc/paper/threadedregions/scheduler/
|
||||
paper-api/src/main/java/io/papermc/paper/util/
|
||||
paper-api/src/main/java/io/papermc/paper/world/
|
||||
paper-api/src/main/java/io/papermc/paper/world/damagesource/
|
||||
paper-api/src/main/java/io/papermc/paper/world/flag/
|
||||
paper-api/src/main/java/org/bukkit/
|
||||
paper-api/src/main/java/org/bukkit/advancement/
|
||||
paper-api/src/main/java/org/bukkit/attribute/
|
||||
paper-api/src/main/java/org/bukkit/ban/
|
||||
paper-api/src/main/java/org/bukkit/block/
|
||||
paper-api/src/main/java/org/bukkit/block/banner/
|
||||
paper-api/src/main/java/org/bukkit/block/data/
|
||||
paper-api/src/main/java/org/bukkit/block/data/type/
|
||||
paper-api/src/main/java/org/bukkit/block/sign/
|
||||
paper-api/src/main/java/org/bukkit/block/spawner/
|
||||
paper-api/src/main/java/org/bukkit/block/structure/
|
||||
paper-api/src/main/java/org/bukkit/boss/
|
||||
paper-api/src/main/java/org/bukkit/command/
|
||||
paper-api/src/main/java/org/bukkit/command/defaults/
|
||||
paper-api/src/main/java/org/bukkit/configuration/
|
||||
paper-api/src/main/java/org/bukkit/configuration/file/
|
||||
paper-api/src/main/java/org/bukkit/configuration/serialization/
|
||||
paper-api/src/main/java/org/bukkit/conversations/
|
||||
paper-api/src/main/java/org/bukkit/damage/
|
||||
paper-api/src/main/java/org/bukkit/enchantments/
|
||||
paper-api/src/main/java/org/bukkit/entity/
|
||||
paper-api/src/main/java/org/bukkit/entity/boat/
|
||||
paper-api/src/main/java/org/bukkit/entity/memory/
|
||||
paper-api/src/main/java/org/bukkit/entity/minecart/
|
||||
paper-api/src/main/java/org/bukkit/event/
|
||||
paper-api/src/main/java/org/bukkit/event/block/
|
||||
paper-api/src/main/java/org/bukkit/event/command/
|
||||
paper-api/src/main/java/org/bukkit/event/enchantment/
|
||||
paper-api/src/main/java/org/bukkit/event/entity/
|
||||
paper-api/src/main/java/org/bukkit/event/hanging/
|
||||
paper-api/src/main/java/org/bukkit/event/inventory/
|
||||
paper-api/src/main/java/org/bukkit/event/player/
|
||||
paper-api/src/main/java/org/bukkit/event/raid/
|
||||
paper-api/src/main/java/org/bukkit/event/server/
|
||||
paper-api/src/main/java/org/bukkit/event/vehicle/
|
||||
paper-api/src/main/java/org/bukkit/event/weather/
|
||||
paper-api/src/main/java/org/bukkit/event/world/
|
||||
paper-api/src/main/java/org/bukkit/generator/
|
||||
paper-api/src/main/java/org/bukkit/generator/structure/
|
||||
paper-api/src/main/java/org/bukkit/help/
|
||||
paper-api/src/main/java/org/bukkit/inventory/
|
||||
paper-api/src/main/java/org/bukkit/inventory/meta/
|
||||
paper-api/src/main/java/org/bukkit/inventory/meta/components/
|
||||
paper-api/src/main/java/org/bukkit/inventory/meta/tags/
|
||||
paper-api/src/main/java/org/bukkit/inventory/meta/trim/
|
||||
paper-api/src/main/java/org/bukkit/inventory/recipe/
|
||||
paper-api/src/main/java/org/bukkit/inventory/view/
|
||||
paper-api/src/main/java/org/bukkit/inventory/view/builder/
|
||||
paper-api/src/main/java/org/bukkit/loot/
|
||||
paper-api/src/main/java/org/bukkit/map/
|
||||
paper-api/src/main/java/org/bukkit/material/
|
||||
paper-api/src/main/java/org/bukkit/material/types/
|
||||
paper-api/src/main/java/org/bukkit/metadata/
|
||||
paper-api/src/main/java/org/bukkit/packs/
|
||||
paper-api/src/main/java/org/bukkit/permissions/
|
||||
paper-api/src/main/java/org/bukkit/persistence/
|
||||
paper-api/src/main/java/org/bukkit/plugin/
|
||||
paper-api/src/main/java/org/bukkit/plugin/java/
|
||||
paper-api/src/main/java/org/bukkit/plugin/messaging/
|
||||
paper-api/src/main/java/org/bukkit/potion/
|
||||
paper-api/src/main/java/org/bukkit/profile/
|
||||
paper-api/src/main/java/org/bukkit/projectiles/
|
||||
paper-api/src/main/java/org/bukkit/scheduler/
|
||||
paper-api/src/main/java/org/bukkit/scoreboard/
|
||||
paper-api/src/main/java/org/bukkit/spawner/
|
||||
paper-api/src/main/java/org/bukkit/structure/
|
||||
paper-api/src/main/java/org/bukkit/tag/
|
||||
paper-api/src/main/java/org/bukkit/util/
|
||||
paper-api/src/main/java/org/bukkit/util/io/
|
||||
paper-api/src/main/java/org/bukkit/util/noise/
|
||||
paper-api/src/main/java/org/bukkit/util/permissions/
|
||||
paper-api/src/main/java/org/spigotmc/
|
||||
paper-api/src/main/java/org/spigotmc/event/player/
|
||||
paper-api/src/test/java/com/destroystokyo/paper/
|
||||
paper-api/src/test/java/io/papermc/paper/adventure/
|
||||
paper-api/src/test/java/io/papermc/paper/registry/
|
||||
paper-api/src/test/java/io/papermc/paper/testing/
|
||||
paper-api/src/test/java/io/papermc/paper/util/
|
||||
paper-api/src/test/java/org/bukkit/
|
||||
paper-api/src/test/java/org/bukkit/configuration/
|
||||
paper-api/src/test/java/org/bukkit/configuration/file/
|
||||
paper-api/src/test/java/org/bukkit/conversations/
|
||||
paper-api/src/test/java/org/bukkit/event/
|
||||
paper-api/src/test/java/org/bukkit/materials/
|
||||
paper-api/src/test/java/org/bukkit/metadata/
|
||||
paper-api/src/test/java/org/bukkit/plugin/
|
||||
paper-api/src/test/java/org/bukkit/plugin/messaging/
|
||||
paper-api/src/test/java/org/bukkit/scoreboard/
|
||||
paper-api/src/test/java/org/bukkit/support/
|
||||
paper-api/src/test/java/org/bukkit/support/provider/
|
||||
paper-api/src/test/java/org/bukkit/support/test/
|
||||
paper-api/src/test/java/org/bukkit/util/
|
||||
paper-api/src/test/java/org/bukkit/util/io/
|
||||
+89
-76
@@ -1,7 +1,11 @@
|
||||
import io.papermc.paperweight.checkstyle.JavadocTag
|
||||
import paper.libs.com.google.gson.Gson
|
||||
|
||||
plugins {
|
||||
`java-library`
|
||||
`maven-publish`
|
||||
idea
|
||||
id("io.papermc.paperweight.paper-checkstyle")
|
||||
}
|
||||
|
||||
java {
|
||||
@@ -9,13 +13,26 @@ java {
|
||||
withJavadocJar()
|
||||
}
|
||||
|
||||
val annotationsVersion = "26.0.1"
|
||||
val bungeeCordChatVersion = "1.20-R0.2"
|
||||
val adventureVersion = "4.18.0"
|
||||
val slf4jVersion = "2.0.9"
|
||||
val log4jVersion = "2.17.1"
|
||||
val projectCustomJavadocTags = setOf(
|
||||
JavadocTag("apiNote", "a", "API Note:"),
|
||||
)
|
||||
|
||||
val apiAndDocs: Configuration by configurations.creating {
|
||||
paperCheckstyle {
|
||||
customJavadocTags = projectCustomJavadocTags
|
||||
directoriesToSkipFile = layout.projectDirectory.file(".checkstyle/ignored_directories.txt")
|
||||
}
|
||||
|
||||
val annotationsVersion = "26.1.0"
|
||||
val adventureVersion = "5.2.0"
|
||||
val bungeeCordChatVersion = "1.21-R0.2-deprecated+build.21"
|
||||
val slf4jVersion = "2.0.17"
|
||||
val log4jVersion = "2.26.0"
|
||||
|
||||
val apiAndDocs: Configuration = configurations.create("apiAndDocs")
|
||||
configurations.api {
|
||||
extendsFrom(apiAndDocs)
|
||||
}
|
||||
val javadocSourcepath: Configuration = configurations.create("javadocSourcepath") {
|
||||
attributes {
|
||||
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.DOCUMENTATION))
|
||||
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling.EXTERNAL))
|
||||
@@ -23,9 +40,6 @@ val apiAndDocs: Configuration by configurations.creating {
|
||||
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME))
|
||||
}
|
||||
}
|
||||
configurations.api {
|
||||
extendsFrom(apiAndDocs)
|
||||
}
|
||||
|
||||
// Configure mockito agent that is needed in newer Java versions
|
||||
val mockitoAgent = configurations.register("mockitoAgent")
|
||||
@@ -39,29 +53,24 @@ abstract class MockitoAgentProvider : CommandLineArgumentProvider {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
// api dependencies are listed transitively to API consumers
|
||||
api("com.google.guava:guava:33.3.1-jre")
|
||||
api("com.google.code.gson:gson:2.11.0")
|
||||
api("com.google.guava:guava:33.6.0-jre")
|
||||
api("com.google.code.gson:gson:2.14.0")
|
||||
api("org.yaml:snakeyaml:2.2")
|
||||
api("org.joml:joml:1.10.8") {
|
||||
isTransitive = false // https://github.com/JOML-CI/JOML/issues/352
|
||||
}
|
||||
api("com.googlecode.json-simple:json-simple:1.1.1") {
|
||||
isTransitive = false // includes junit
|
||||
}
|
||||
api("it.unimi.dsi:fastutil:8.5.15")
|
||||
api("org.joml:joml:1.10.9")
|
||||
api("it.unimi.dsi:fastutil:8.5.18")
|
||||
api("org.apache.logging.log4j:log4j-api:$log4jVersion")
|
||||
api("org.slf4j:slf4j-api:$slf4jVersion")
|
||||
api("com.mojang:brigadier:1.3.10")
|
||||
api("com.mojang:brigadier:1.3.11")
|
||||
|
||||
// Deprecate bungeecord-chat in favor of adventure
|
||||
api("net.md-5:bungeecord-chat:$bungeeCordChatVersion-deprecated+build.19") {
|
||||
api("net.md-5:bungeecord-chat:$bungeeCordChatVersion") {
|
||||
exclude("com.google.guava", "guava")
|
||||
}
|
||||
|
||||
apiAndDocs(platform("net.kyori:adventure-bom:$adventureVersion"))
|
||||
apiAndDocs("net.kyori:adventure-api")
|
||||
apiAndDocs("net.kyori:adventure-key")
|
||||
apiAndDocs("net.kyori:adventure-text-minimessage")
|
||||
apiAndDocs("net.kyori:adventure-text-serializer-gson")
|
||||
apiAndDocs("net.kyori:adventure-text-serializer-legacy")
|
||||
@@ -69,40 +78,44 @@ dependencies {
|
||||
apiAndDocs("net.kyori:adventure-text-logger-slf4j")
|
||||
|
||||
api("org.apache.maven:maven-resolver-provider:3.9.6") // make API dependency for Paper Plugins
|
||||
compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
|
||||
compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18")
|
||||
implementation("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
|
||||
implementation("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18")
|
||||
|
||||
// Annotations - Slowly migrate to jspecify
|
||||
val annotations = "org.jetbrains:annotations:$annotationsVersion"
|
||||
compileOnly(annotations)
|
||||
testCompileOnly(annotations)
|
||||
javadocSourcepath(annotations) // For adventure-api module requirements
|
||||
|
||||
val checkerQual = "org.checkerframework:checker-qual:3.33.0"
|
||||
val checkerQual = "org.checkerframework:checker-qual:4.2.3"
|
||||
compileOnlyApi(checkerQual)
|
||||
testCompileOnly(checkerQual)
|
||||
|
||||
api("org.jspecify:jspecify:1.0.0")
|
||||
apiAndDocs("org.jspecify:jspecify:1.0.0")
|
||||
|
||||
// Test dependencies
|
||||
testImplementation("org.apache.commons:commons-lang3:3.12.0")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
|
||||
testImplementation("org.apache.commons:commons-lang3:3.20.0")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter:6.0.3")
|
||||
testImplementation("org.hamcrest:hamcrest:2.2")
|
||||
testImplementation("org.mockito:mockito-core:5.14.1")
|
||||
testImplementation("org.ow2.asm:asm-tree:9.7.1")
|
||||
mockitoAgent("org.mockito:mockito-core:5.14.1") { isTransitive = false } // configure mockito agent that is needed in newer java versions
|
||||
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
|
||||
testImplementation("org.mockito:mockito-core:5.22.0")
|
||||
testImplementation("org.ow2.asm:asm-tree:9.9.1")
|
||||
mockitoAgent("org.mockito:mockito-core:5.22.0") { isTransitive = false } // configure mockito agent that is needed in newer java versions
|
||||
testRuntimeOnly("org.junit.platform:junit-platform-launcher:6.0.3")
|
||||
|
||||
// checkstyle
|
||||
checkstyle(project(":paper-checkstyle"))
|
||||
}
|
||||
|
||||
val generatedApiPath: java.nio.file.Path = rootProject.projectDir.toPath().resolve("paper-api-generator/generated")
|
||||
val generatedDir: java.nio.file.Path = layout.projectDirectory.dir("src/generated/java").asFile.toPath()
|
||||
idea {
|
||||
module {
|
||||
generatedSourceDirs.add(generatedApiPath.toFile())
|
||||
generatedSourceDirs.add(generatedDir.toFile())
|
||||
}
|
||||
}
|
||||
sourceSets {
|
||||
main {
|
||||
java {
|
||||
srcDir(generatedApiPath)
|
||||
srcDir(generatedDir)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -140,20 +153,36 @@ configure<PublishingExtension> {
|
||||
}
|
||||
}
|
||||
|
||||
val generateApiVersioningFile by tasks.registering {
|
||||
inputs.property("version", project.version)
|
||||
val pomProps = layout.buildDirectory.file("pom.properties")
|
||||
outputs.file(pomProps)
|
||||
val projectVersion = project.version
|
||||
doLast {
|
||||
pomProps.get().asFile.writeText("version=$projectVersion")
|
||||
abstract class GenerateApiVersioningFile : DefaultTask() {
|
||||
@get:OutputFile
|
||||
abstract val outputFile: RegularFileProperty
|
||||
|
||||
@get:Input
|
||||
abstract val projectVersion: Property<String>
|
||||
|
||||
@get:Input
|
||||
abstract val apiVersion: Property<String>
|
||||
|
||||
@TaskAction
|
||||
fun generate() {
|
||||
val file = outputFile.get().asFile
|
||||
file.parentFile.mkdirs()
|
||||
val map = mapOf(
|
||||
"version" to projectVersion.get(),
|
||||
"currentApiVersion" to apiVersion.get()
|
||||
)
|
||||
file.writeText(Gson().toJson(map))
|
||||
}
|
||||
}
|
||||
|
||||
val generateApiVersioningFile = tasks.register<GenerateApiVersioningFile>("generateApiVersioningFile") {
|
||||
outputFile.set(layout.buildDirectory.file("apiVersioning.json"))
|
||||
projectVersion.set(project.version.toString())
|
||||
apiVersion.set(rootProject.providers.gradleProperty("apiVersion"))
|
||||
}
|
||||
|
||||
tasks.jar {
|
||||
from(generateApiVersioningFile.map { it.outputs.files.singleFile }) {
|
||||
into("META-INF/maven/${project.group}/${project.name}")
|
||||
}
|
||||
from(generateApiVersioningFile.flatMap { it.outputFile })
|
||||
manifest {
|
||||
attributes(
|
||||
"Automatic-Module-Name" to "org.bukkit"
|
||||
@@ -167,37 +196,31 @@ abstract class Services {
|
||||
}
|
||||
val services = objects.newInstance<Services>()
|
||||
|
||||
tasks.withType<Javadoc> {
|
||||
tasks.withType<Javadoc>().configureEach {
|
||||
val options = options as StandardJavadocDocletOptions
|
||||
options.overview = "src/main/javadoc/overview.html"
|
||||
options.use()
|
||||
options.isDocFilesSubDirs = true
|
||||
options.links(
|
||||
"https://guava.dev/releases/33.3.1-jre/api/docs/",
|
||||
"https://javadoc.io/doc/org.yaml/snakeyaml/2.2/",
|
||||
"https://javadoc.io/doc/org.jetbrains/annotations/$annotationsVersion/",
|
||||
"https://javadoc.io/doc/org.joml/joml/1.10.8/index.html",
|
||||
"https://www.javadoc.io/doc/com.google.code.gson/gson/2.11.0",
|
||||
"https://guava.dev/releases/33.6.0-jre/api/docs/",
|
||||
"https://www.javadocs.dev/org.yaml/snakeyaml/2.2/",
|
||||
"https://www.javadocs.dev/org.jetbrains/annotations/$annotationsVersion/",
|
||||
"https://www.javadocs.dev/org.joml/joml/1.10.9/",
|
||||
"https://www.javadocs.dev/com.google.code.gson/gson/2.14.0",
|
||||
"https://jspecify.dev/docs/api/",
|
||||
"https://jd.advntr.dev/api/$adventureVersion/",
|
||||
"https://jd.advntr.dev/key/$adventureVersion/",
|
||||
"https://jd.advntr.dev/text-minimessage/$adventureVersion/",
|
||||
"https://jd.advntr.dev/text-serializer-gson/$adventureVersion/",
|
||||
"https://jd.advntr.dev/text-serializer-legacy/$adventureVersion/",
|
||||
"https://jd.advntr.dev/text-serializer-plain/$adventureVersion/",
|
||||
"https://jd.advntr.dev/text-logger-slf4j/$adventureVersion/",
|
||||
"https://javadoc.io/doc/org.slf4j/slf4j-api/$slf4jVersion/",
|
||||
"https://javadoc.io/doc/org.apache.logging.log4j/log4j-api/$log4jVersion/",
|
||||
"https://javadoc.io/doc/org.apache.maven.resolver/maven-resolver-api/1.7.3",
|
||||
"https://jd.papermc.io/adventure/$adventureVersion/",
|
||||
"https://www.javadocs.dev/org.slf4j/slf4j-api/$slf4jVersion/",
|
||||
"https://logging.apache.org/log4j/2.x/javadoc/log4j-api/",
|
||||
"https://www.javadocs.dev/org.apache.maven.resolver/maven-resolver-api/1.7.3",
|
||||
)
|
||||
options.tags("apiNote:a:API Note:")
|
||||
options.tags(projectCustomJavadocTags.map { it.toOptionString() })
|
||||
|
||||
inputs.files(apiAndDocs).ignoreEmptyDirectories().withPropertyName(apiAndDocs.name + "-configuration")
|
||||
val apiAndDocsElements = apiAndDocs.elements
|
||||
inputs.files(javadocSourcepath).ignoreEmptyDirectories().withPropertyName(javadocSourcepath.name + "-configuration")
|
||||
val javadocSourcepathElements = javadocSourcepath.elements
|
||||
doFirst {
|
||||
options.addStringOption(
|
||||
"sourcepath",
|
||||
apiAndDocsElements.get().map { it.asFile }.joinToString(separator = File.pathSeparator, transform = File::getPath)
|
||||
javadocSourcepathElements.get().map { it.asFile }.joinToString(separator = File.pathSeparator, transform = File::getPath)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -228,21 +251,11 @@ tasks.compileTestJava {
|
||||
options.compilerArgs.add("-parameters")
|
||||
}
|
||||
|
||||
val scanJar = tasks.register("scanJarForBadCalls", io.papermc.paperweight.tasks.ScanJarForBadCalls::class) {
|
||||
val scanJarForBadCalls = tasks.register<io.papermc.paperweight.tasks.ScanJarForBadCalls>("scanJarForBadCalls") {
|
||||
badAnnotations.add("Lio/papermc/paper/annotation/DoNotUse;")
|
||||
jarToScan.set(tasks.jar.flatMap { it.archiveFile })
|
||||
classpath.from(configurations.compileClasspath)
|
||||
}
|
||||
tasks.check {
|
||||
dependsOn(scanJar)
|
||||
}
|
||||
|
||||
val scanJarForOldGeneratedCode = tasks.register("scanJarForOldGeneratedCode", io.papermc.paperweight.tasks.ScanJarForOldGeneratedCode::class) {
|
||||
mcVersion.set(providers.gradleProperty("mcVersion"))
|
||||
annotation.set("Lio/papermc/paper/generated/GeneratedFrom;")
|
||||
jarToScan.set(tasks.jar.flatMap { it.archiveFile })
|
||||
classpath.from(configurations.compileClasspath)
|
||||
}
|
||||
tasks.check {
|
||||
dependsOn(scanJarForOldGeneratedCode)
|
||||
dependsOn(scanJarForBadCalls)
|
||||
}
|
||||
+78
-62
@@ -1,9 +1,10 @@
|
||||
package com.destroystokyo.paper.entity.ai;
|
||||
|
||||
import com.destroystokyo.paper.entity.RangedEntity;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.entity.SchoolableFish;
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.entity.AbstractCubeMob;
|
||||
import org.bukkit.entity.AbstractHorse;
|
||||
import org.bukkit.entity.AbstractSkeleton;
|
||||
import org.bukkit.entity.AbstractVillager;
|
||||
@@ -21,6 +22,7 @@ import org.bukkit.entity.Fish;
|
||||
import org.bukkit.entity.Fox;
|
||||
import org.bukkit.entity.Ghast;
|
||||
import org.bukkit.entity.Guardian;
|
||||
import org.bukkit.entity.HappyGhast;
|
||||
import org.bukkit.entity.Illager;
|
||||
import org.bukkit.entity.Illusioner;
|
||||
import org.bukkit.entity.IronGolem;
|
||||
@@ -38,11 +40,11 @@ import org.bukkit.entity.Raider;
|
||||
import org.bukkit.entity.Shulker;
|
||||
import org.bukkit.entity.Silverfish;
|
||||
import org.bukkit.entity.SkeletonHorse;
|
||||
import org.bukkit.entity.Slime;
|
||||
import org.bukkit.entity.Spellcaster;
|
||||
import org.bukkit.entity.Spider;
|
||||
import org.bukkit.entity.Squid;
|
||||
import org.bukkit.entity.Strider;
|
||||
import org.bukkit.entity.SulfurCube;
|
||||
import org.bukkit.entity.Tameable;
|
||||
import org.bukkit.entity.Turtle;
|
||||
import org.bukkit.entity.Vex;
|
||||
@@ -66,18 +68,28 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@GeneratedClass
|
||||
public interface VanillaGoal<T extends Mob> extends Goal<T> {
|
||||
GoalKey<AbstractHorse> RANDOM_STAND = create("random_stand", AbstractHorse.class);
|
||||
GoalKey<AbstractCubeMob> CUBE_MOB_ATTACK = create("cube_mob_attack", AbstractCubeMob.class);
|
||||
|
||||
GoalKey<AbstractHorse> RUN_AROUND_LIKE_CRAZY = create("run_around_like_crazy", AbstractHorse.class);
|
||||
GoalKey<AbstractCubeMob> CUBE_MOB_FLOAT = create("cube_mob_float", AbstractCubeMob.class);
|
||||
|
||||
GoalKey<AbstractSkeleton> ABSTRACT_SKELETON_MELEE = create("abstract_skeleton_melee", AbstractSkeleton.class);
|
||||
GoalKey<AbstractCubeMob> CUBE_MOB_KEEP_ON_JUMPING = create("cube_mob_keep_on_jumping", AbstractCubeMob.class);
|
||||
|
||||
GoalKey<AbstractVillager> LOOK_AT_TRADING_PLAYER = create("look_at_trading_player", AbstractVillager.class);
|
||||
GoalKey<AbstractCubeMob> CUBE_MOB_RANDOM_DIRECTION = create("cube_mob_random_direction", AbstractCubeMob.class);
|
||||
|
||||
GoalKey<AbstractVillager> TRADE_WITH_PLAYER = create("trade_with_player", AbstractVillager.class);
|
||||
GoalKey<AbstractHorse> HORSE_MOUNT_PANIC = create("horse_mount_panic", AbstractHorse.class);
|
||||
|
||||
GoalKey<AbstractHorse> HORSE_RANDOM_STAND = create("horse_random_stand", AbstractHorse.class);
|
||||
|
||||
GoalKey<AbstractHorse> HORSE_RUN_AROUND_LIKE_CRAZY = create("horse_run_around_like_crazy", AbstractHorse.class);
|
||||
|
||||
GoalKey<AbstractSkeleton> SKELETON_MELEE = create("skeleton_melee", AbstractSkeleton.class);
|
||||
|
||||
GoalKey<AbstractVillager> VILLAGER_LOOK_AT_TRADING_PLAYER = create("villager_look_at_trading_player", AbstractVillager.class);
|
||||
|
||||
GoalKey<AbstractVillager> VILLAGER_TRADE_WITH_PLAYER = create("villager_trade_with_player", AbstractVillager.class);
|
||||
|
||||
GoalKey<Animals> BREED = create("breed", Animals.class);
|
||||
|
||||
@@ -101,17 +113,17 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
|
||||
|
||||
GoalKey<Bee> BEE_POLLINATE = create("bee_pollinate", Bee.class);
|
||||
|
||||
GoalKey<Bee> BEE_VALIDATE_FLOWER = create("bee_validate_flower", Bee.class);
|
||||
|
||||
GoalKey<Bee> BEE_VALIDATE_HIVE = create("bee_validate_hive", Bee.class);
|
||||
|
||||
GoalKey<Bee> BEE_WANDER = create("bee_wander", Bee.class);
|
||||
|
||||
GoalKey<Bee> VALIDATE_FLOWER = create("validate_flower", Bee.class);
|
||||
|
||||
GoalKey<Bee> VALIDATE_HIVE = create("validate_hive", Bee.class);
|
||||
|
||||
GoalKey<Blaze> BLAZE_ATTACK = create("blaze_attack", Blaze.class);
|
||||
|
||||
GoalKey<Cat> CAT_AVOID_ENTITY = create("cat_avoid_entity", Cat.class);
|
||||
|
||||
GoalKey<Cat> CAT_LIE_ON_BED = create("cat_lie_on_bed", Cat.class);
|
||||
GoalKey<Cat> CAT_LIE_ON_BLOCK = create("cat_lie_on_block", Cat.class);
|
||||
|
||||
GoalKey<Cat> CAT_RELAX_ON_OWNER = create("cat_relax_on_owner", Cat.class);
|
||||
|
||||
@@ -127,7 +139,7 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
|
||||
|
||||
GoalKey<Creature> FLEE_SUN = create("flee_sun", Creature.class);
|
||||
|
||||
GoalKey<Creature> FOLLOW_BOAT = create("follow_boat", Creature.class);
|
||||
GoalKey<Creature> FOLLOW_PLAYER_RIDDEN_ENTITY = create("follow_player_ridden_entity", Creature.class);
|
||||
|
||||
GoalKey<Creature> GOLEM_RANDOM_STROLL_IN_VILLAGE = create("golem_random_stroll_in_village", Creature.class);
|
||||
|
||||
@@ -159,22 +171,24 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
|
||||
|
||||
GoalKey<Creature> TEMPT = create("tempt", Creature.class);
|
||||
|
||||
GoalKey<Creature> TRY_FIND_WATER = create("try_find_water", Creature.class);
|
||||
GoalKey<Creature> TRY_FIND_LIQUID = create("try_find_liquid", Creature.class);
|
||||
|
||||
GoalKey<Creature> WATER_AVOIDING_RANDOM_FLYING = create("water_avoiding_random_flying", Creature.class);
|
||||
|
||||
GoalKey<Creature> WATER_AVOIDING_RANDOM_STROLL = create("water_avoiding_random_stroll", Creature.class);
|
||||
|
||||
GoalKey<Creeper> SWELL = create("swell", Creeper.class);
|
||||
GoalKey<Creeper> CREEPER_SWELL = create("creeper_swell", Creeper.class);
|
||||
|
||||
GoalKey<Dolphin> DOLPHIN_JUMP = create("dolphin_jump", Dolphin.class);
|
||||
|
||||
GoalKey<Dolphin> DOLPHIN_MOVE_TO_ITEM = create("dolphin_move_to_item", Dolphin.class);
|
||||
|
||||
GoalKey<Dolphin> DOLPHIN_PLAY_WITH_ITEMS = create("dolphin_play_with_items", Dolphin.class);
|
||||
|
||||
GoalKey<Dolphin> DOLPHIN_SWIM_TO_TREASURE = create("dolphin_swim_to_treasure", Dolphin.class);
|
||||
|
||||
GoalKey<Dolphin> DOLPHIN_SWIM_WITH_PLAYER = create("dolphin_swim_with_player", Dolphin.class);
|
||||
|
||||
GoalKey<Dolphin> PLAY_WITH_ITEMS = create("play_with_items", Dolphin.class);
|
||||
|
||||
GoalKey<Drowned> DROWNED_ATTACK = create("drowned_attack", Drowned.class);
|
||||
|
||||
GoalKey<Drowned> DROWNED_GO_TO_BEACH = create("drowned_go_to_beach", Drowned.class);
|
||||
@@ -199,14 +213,14 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
|
||||
|
||||
GoalKey<Fish> FISH_SWIM = create("fish_swim", Fish.class);
|
||||
|
||||
GoalKey<Fox> DEFEND_TRUSTED = create("defend_trusted", Fox.class);
|
||||
|
||||
GoalKey<Fox> FACEPLANT = create("faceplant", Fox.class);
|
||||
|
||||
GoalKey<Fox> FOX_BREED = create("fox_breed", Fox.class);
|
||||
|
||||
GoalKey<Fox> FOX_DEFEND_TRUSTED = create("fox_defend_trusted", Fox.class);
|
||||
|
||||
GoalKey<Fox> FOX_EAT_BERRIES = create("fox_eat_berries", Fox.class);
|
||||
|
||||
GoalKey<Fox> FOX_FACEPLANT = create("fox_faceplant", Fox.class);
|
||||
|
||||
GoalKey<Fox> FOX_FLOAT = create("fox_float", Fox.class);
|
||||
|
||||
GoalKey<Fox> FOX_FOLLOW_PARENT = create("fox_follow_parent", Fox.class);
|
||||
@@ -217,29 +231,27 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
|
||||
|
||||
GoalKey<Fox> FOX_PANIC = create("fox_panic", Fox.class);
|
||||
|
||||
GoalKey<Fox> FOX_PERCH_AND_SEARCH = create("fox_perch_and_search", Fox.class);
|
||||
|
||||
GoalKey<Fox> FOX_POUNCE = create("fox_pounce", Fox.class);
|
||||
|
||||
GoalKey<Fox> FOX_SEARCH_FOR_ITEMS = create("fox_search_for_items", Fox.class);
|
||||
|
||||
GoalKey<Fox> FOX_SEEK_SHELTER = create("fox_seek_shelter", Fox.class);
|
||||
|
||||
GoalKey<Fox> FOX_SLEEP = create("fox_sleep", Fox.class);
|
||||
|
||||
GoalKey<Fox> FOX_STALK_PREY = create("fox_stalk_prey", Fox.class);
|
||||
|
||||
GoalKey<Fox> FOX_STROLL_THROUGH_VILLAGE = create("fox_stroll_through_village", Fox.class);
|
||||
|
||||
GoalKey<Fox> PERCH_AND_SEARCH = create("perch_and_search", Fox.class);
|
||||
|
||||
GoalKey<Fox> SEEK_SHELTER = create("seek_shelter", Fox.class);
|
||||
|
||||
GoalKey<Fox> SLEEP = create("sleep", Fox.class);
|
||||
|
||||
GoalKey<Fox> STALK_PREY = create("stalk_prey", Fox.class);
|
||||
|
||||
GoalKey<Ghast> GHAST_LOOK = create("ghast_look", Ghast.class);
|
||||
|
||||
GoalKey<Ghast> GHAST_SHOOT_FIREBALL = create("ghast_shoot_fireball", Ghast.class);
|
||||
|
||||
GoalKey<Ghast> RANDOM_FLOAT_AROUND = create("random_float_around", Ghast.class);
|
||||
|
||||
GoalKey<Guardian> GUARDIAN_ATTACK = create("guardian_attack", Guardian.class);
|
||||
|
||||
GoalKey<Illager> HOLD_GROUND_ATTACK = create("hold_ground_attack", Illager.class);
|
||||
GoalKey<HappyGhast> HAPPY_GHAST_FLOAT = create("happy_ghast_float", HappyGhast.class);
|
||||
|
||||
GoalKey<Illager> ILLAGER_HOLD_GROUND_ATTACK = create("illager_hold_ground_attack", Illager.class);
|
||||
|
||||
GoalKey<Illager> RAIDER_OPEN_DOOR = create("raider_open_door", Illager.class);
|
||||
|
||||
@@ -247,9 +259,9 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
|
||||
|
||||
GoalKey<Illusioner> ILLUSIONER_MIRROR_SPELL = create("illusioner_mirror_spell", Illusioner.class);
|
||||
|
||||
GoalKey<IronGolem> DEFEND_VILLAGE = create("defend_village", IronGolem.class);
|
||||
GoalKey<IronGolem> IRON_GOLEM_DEFEND_VILLAGE = create("iron_golem_defend_village", IronGolem.class);
|
||||
|
||||
GoalKey<IronGolem> OFFER_FLOWER = create("offer_flower", IronGolem.class);
|
||||
GoalKey<IronGolem> IRON_GOLEM_OFFER_FLOWER = create("iron_golem_offer_flower", IronGolem.class);
|
||||
|
||||
GoalKey<Llama> LLAMA_ATTACK_WOLF = create("llama_attack_wolf", Llama.class);
|
||||
|
||||
@@ -269,6 +281,8 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
|
||||
|
||||
GoalKey<Mob> FOLLOW_MOB = create("follow_mob", Mob.class);
|
||||
|
||||
GoalKey<Mob> GHAST_LOOK = create("ghast_look", Mob.class);
|
||||
|
||||
GoalKey<Mob> INTERACT = create("interact", Mob.class);
|
||||
|
||||
GoalKey<Mob> LEAP_AT = create("leap_at", Mob.class);
|
||||
@@ -281,10 +295,16 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
|
||||
|
||||
GoalKey<Mob> OPEN_DOOR = create("open_door", Mob.class);
|
||||
|
||||
GoalKey<Mob> RANDOM_FLOAT_AROUND = create("random_float_around", Mob.class);
|
||||
|
||||
GoalKey<Mob> RANDOM_LOOK_AROUND = create("random_look_around", Mob.class);
|
||||
|
||||
GoalKey<Mob> RESET_UNIVERSAL_ANGER = create("reset_universal_anger", Mob.class);
|
||||
|
||||
GoalKey<Mob> SULFUR_CUBE_TEMPT = create("sulfur_cube_tempt", Mob.class);
|
||||
|
||||
GoalKey<Mob> TEMPT_FOR_NON_PATHFINDERS = create("tempt_for_non_pathfinders", Mob.class);
|
||||
|
||||
GoalKey<Mob> USE_ITEM = create("use_item", Mob.class);
|
||||
|
||||
GoalKey<Mob> VINDICATOR_BREAK_DOOR = create("vindicator_break_door", Mob.class);
|
||||
@@ -293,6 +313,8 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
|
||||
|
||||
GoalKey<Monster> RANGED_CROSSBOW_ATTACK = create("ranged_crossbow_attack", Monster.class);
|
||||
|
||||
GoalKey<Monster> SPEAR_USE = create("spear_use", Monster.class);
|
||||
|
||||
GoalKey<Ocelot> OCELOT_AVOID_ENTITY = create("ocelot_avoid_entity", Ocelot.class);
|
||||
|
||||
GoalKey<Ocelot> OCELOT_TEMPT = create("ocelot_tempt", Ocelot.class);
|
||||
@@ -317,7 +339,7 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
|
||||
|
||||
GoalKey<Panda> PANDA_SNEEZE = create("panda_sneeze", Panda.class);
|
||||
|
||||
GoalKey<Parrot> LAND_ON_OWNERS_SHOULDER = create("land_on_owners_shoulder", Parrot.class);
|
||||
GoalKey<Parrot> PARROT_LAND_ON_OWNERS_SHOULDER = create("parrot_land_on_owners_shoulder", Parrot.class);
|
||||
|
||||
GoalKey<Phantom> PHANTOM_ATTACK_PLAYER = create("phantom_attack_player", Phantom.class);
|
||||
|
||||
@@ -339,27 +361,27 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
|
||||
|
||||
GoalKey<Rabbit> RABBIT_PANIC = create("rabbit_panic", Rabbit.class);
|
||||
|
||||
GoalKey<Rabbit> RAID_GARDEN = create("raid_garden", Rabbit.class);
|
||||
|
||||
GoalKey<Raider> LONG_DISTANCE_PATROL = create("long_distance_patrol", Raider.class);
|
||||
|
||||
GoalKey<Raider> NEAREST_ATTACKABLE_WITCH = create("nearest_attackable_witch", Raider.class);
|
||||
|
||||
GoalKey<Raider> NEAREST_HEALABLE_RAIDER = create("nearest_healable_raider", Raider.class);
|
||||
|
||||
GoalKey<Raider> OBTAIN_RAID_LEADER_BANNER = create("obtain_raid_leader_banner", Raider.class);
|
||||
|
||||
GoalKey<Raider> PATHFIND_TO_RAID = create("pathfind_to_raid", Raider.class);
|
||||
GoalKey<Rabbit> RABBIT_RAID_GARDEN = create("rabbit_raid_garden", Rabbit.class);
|
||||
|
||||
GoalKey<Raider> RAIDER_CELEBRATION = create("raider_celebration", Raider.class);
|
||||
|
||||
GoalKey<Raider> RAIDER_LONG_DISTANCE_PATROL = create("raider_long_distance_patrol", Raider.class);
|
||||
|
||||
GoalKey<Raider> RAIDER_MOVE_THROUGH_VILLAGE = create("raider_move_through_village", Raider.class);
|
||||
|
||||
GoalKey<Raider> RAIDER_NEAREST_ATTACKABLE_WITCH = create("raider_nearest_attackable_witch", Raider.class);
|
||||
|
||||
GoalKey<Raider> RAIDER_NEAREST_HEALABLE_RAIDER = create("raider_nearest_healable_raider", Raider.class);
|
||||
|
||||
GoalKey<Raider> RAIDER_OBTAIN_RAID_LEADER_BANNER = create("raider_obtain_raid_leader_banner", Raider.class);
|
||||
|
||||
GoalKey<Raider> RAIDER_PATHFIND_TO_RAID = create("raider_pathfind_to_raid", Raider.class);
|
||||
|
||||
GoalKey<RangedEntity> DROWNED_TRIDENT_ATTACK = create("drowned_trident_attack", RangedEntity.class);
|
||||
|
||||
GoalKey<RangedEntity> RANGED_ATTACK = create("ranged_attack", RangedEntity.class);
|
||||
|
||||
GoalKey<SchoolableFish> FOLLOW_FLOCK_LEADER = create("follow_flock_leader", SchoolableFish.class);
|
||||
GoalKey<SchoolableFish> SCHOOLABLE_FISH_FOLLOW_FLOCK_LEADER = create("schoolable_fish_follow_flock_leader", SchoolableFish.class);
|
||||
|
||||
GoalKey<Shulker> SHULKER_ATTACK = create("shulker_attack", Shulker.class);
|
||||
|
||||
@@ -373,15 +395,7 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
|
||||
|
||||
GoalKey<Silverfish> SILVERFISH_WAKE_UP_FRIENDS = create("silverfish_wake_up_friends", Silverfish.class);
|
||||
|
||||
GoalKey<SkeletonHorse> SKELETON_TRAP = create("skeleton_trap", SkeletonHorse.class);
|
||||
|
||||
GoalKey<Slime> SLIME_ATTACK = create("slime_attack", Slime.class);
|
||||
|
||||
GoalKey<Slime> SLIME_FLOAT = create("slime_float", Slime.class);
|
||||
|
||||
GoalKey<Slime> SLIME_KEEP_ON_JUMPING = create("slime_keep_on_jumping", Slime.class);
|
||||
|
||||
GoalKey<Slime> SLIME_RANDOM_DIRECTION = create("slime_random_direction", Slime.class);
|
||||
GoalKey<SkeletonHorse> SKELETON_HORSE_SKELETON_TRAP = create("skeleton_horse_skeleton_trap", SkeletonHorse.class);
|
||||
|
||||
GoalKey<Spellcaster> SPELLCASTER_CASTING_SPELL = create("spellcaster_casting_spell", Spellcaster.class);
|
||||
|
||||
@@ -395,6 +409,8 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
|
||||
|
||||
GoalKey<Strider> STRIDER_GO_TO_LAVA = create("strider_go_to_lava", Strider.class);
|
||||
|
||||
GoalKey<SulfurCube> SULFUR_CUBE_SEARCH_FOR_ITEMS = create("sulfur_cube_search_for_items", SulfurCube.class);
|
||||
|
||||
GoalKey<Tameable> FOLLOW_OWNER = create("follow_owner", Tameable.class);
|
||||
|
||||
GoalKey<Tameable> NON_TAME_RANDOM = create("non_tame_random", Tameable.class);
|
||||
@@ -429,14 +445,14 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
|
||||
|
||||
GoalKey<Vindicator> VINDICATOR_JOHNNY_ATTACK = create("vindicator_johnny_attack", Vindicator.class);
|
||||
|
||||
GoalKey<WanderingTrader> WANDER_TO_POSITION = create("wander_to_position", WanderingTrader.class);
|
||||
GoalKey<WanderingTrader> WANDERING_TRADER_WANDER_TO_POSITION = create("wandering_trader_wander_to_position", WanderingTrader.class);
|
||||
|
||||
GoalKey<Wither> WITHER_DO_NOTHING = create("wither_do_nothing", Wither.class);
|
||||
|
||||
GoalKey<Wolf> BEG = create("beg", Wolf.class);
|
||||
|
||||
GoalKey<Wolf> WOLF_AVOID_ENTITY = create("wolf_avoid_entity", Wolf.class);
|
||||
|
||||
GoalKey<Wolf> WOLF_BEG = create("wolf_beg", Wolf.class);
|
||||
|
||||
GoalKey<Zombie> ZOMBIE_ATTACK = create("zombie_attack", Zombie.class);
|
||||
|
||||
GoalKey<Zombie> ZOMBIE_ATTACK_TURTLE_EGG = create("zombie_attack_turtle_egg", Zombie.class);
|
||||
+58
-4
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.attribute.Attribute;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,10 +22,16 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class AttributeKeys {
|
||||
/**
|
||||
* {@code minecraft:air_drag_modifier}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Attribute> AIR_DRAG_MODIFIER = create(key("air_drag_modifier"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:armor}
|
||||
*
|
||||
@@ -62,6 +67,13 @@ public final class AttributeKeys {
|
||||
*/
|
||||
public static final TypedKey<Attribute> ATTACK_SPEED = create(key("attack_speed"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:below_name_distance}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Attribute> BELOW_NAME_DISTANCE = create(key("below_name_distance"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:block_break_speed}
|
||||
*
|
||||
@@ -76,6 +88,13 @@ public final class AttributeKeys {
|
||||
*/
|
||||
public static final TypedKey<Attribute> BLOCK_INTERACTION_RANGE = create(key("block_interaction_range"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:bounciness}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Attribute> BOUNCINESS = create(key("bounciness"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:burning_time}
|
||||
*
|
||||
@@ -83,6 +102,13 @@ public final class AttributeKeys {
|
||||
*/
|
||||
public static final TypedKey<Attribute> BURNING_TIME = create(key("burning_time"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:camera_distance}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Attribute> CAMERA_DISTANCE = create(key("camera_distance"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:entity_interaction_range}
|
||||
*
|
||||
@@ -118,6 +144,13 @@ public final class AttributeKeys {
|
||||
*/
|
||||
public static final TypedKey<Attribute> FOLLOW_RANGE = create(key("follow_range"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:friction_modifier}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Attribute> FRICTION_MODIFIER = create(key("friction_modifier"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:gravity}
|
||||
*
|
||||
@@ -181,6 +214,13 @@ public final class AttributeKeys {
|
||||
*/
|
||||
public static final TypedKey<Attribute> MOVEMENT_SPEED = create(key("movement_speed"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:name_tag_distance}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Attribute> NAME_TAG_DISTANCE = create(key("name_tag_distance"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:oxygen_bonus}
|
||||
*
|
||||
@@ -251,6 +291,20 @@ public final class AttributeKeys {
|
||||
*/
|
||||
public static final TypedKey<Attribute> WATER_MOVEMENT_EFFICIENCY = create(key("water_movement_efficiency"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:waypoint_receive_range}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Attribute> WAYPOINT_RECEIVE_RANGE = create(key("waypoint_receive_range"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:waypoint_transmit_range}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Attribute> WAYPOINT_TRANSMIT_RANGE = create(key("waypoint_transmit_range"));
|
||||
|
||||
private AttributeKeys() {
|
||||
}
|
||||
|
||||
+3
-6
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.block.banner.PatternType;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class BannerPatternKeys {
|
||||
/**
|
||||
* {@code minecraft:base}
|
||||
@@ -332,12 +330,11 @@ public final class BannerPatternKeys {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a key for {@link PatternType} in the registry {@code minecraft:banner_pattern}.
|
||||
* Creates a typed key for {@link PatternType} in the registry {@code minecraft:banner_pattern}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TypedKey<PatternType> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.BANNER_PATTERN, key);
|
||||
}
|
||||
+17
-6
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class BiomeKeys {
|
||||
/**
|
||||
* {@code minecraft:badlands}
|
||||
@@ -83,6 +81,13 @@ public final class BiomeKeys {
|
||||
*/
|
||||
public static final TypedKey<Biome> CRIMSON_FOREST = create(key("crimson_forest"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:dappled_forest}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Biome> DAPPLED_FOREST = create(key("dappled_forest"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:dark_forest}
|
||||
*
|
||||
@@ -398,6 +403,13 @@ public final class BiomeKeys {
|
||||
*/
|
||||
public static final TypedKey<Biome> STONY_SHORE = create(key("stony_shore"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:sulfur_caves}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Biome> SULFUR_CAVES = create(key("sulfur_caves"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:sunflower_plains}
|
||||
*
|
||||
@@ -486,12 +498,11 @@ public final class BiomeKeys {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a key for {@link Biome} in the registry {@code minecraft:worldgen/biome}.
|
||||
* Creates a typed key for {@link Biome} in the registry {@code minecraft:worldgen/biome}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TypedKey<Biome> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.BIOME, key);
|
||||
}
|
||||
+1346
-11
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,54 @@
|
||||
package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.entity.Cat;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#CAT_SOUND_VARIANT}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
* changed (including removals) on any Minecraft version
|
||||
* bump, so cross-version compatibility is not provided on the
|
||||
* same level as it is on most of the other API.
|
||||
*/
|
||||
@SuppressWarnings({
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@NullMarked
|
||||
@GeneratedClass
|
||||
public final class CatSoundVariantKeys {
|
||||
/**
|
||||
* {@code minecraft:classic}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Cat.SoundVariant> CLASSIC = create(key("classic"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:royal}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Cat.SoundVariant> ROYAL = create(key("royal"));
|
||||
|
||||
private CatSoundVariantKeys() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a typed key for {@link Cat.SoundVariant} in the registry {@code minecraft:cat_sound_variant}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
public static TypedKey<Cat.SoundVariant> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.CAT_SOUND_VARIANT, key);
|
||||
}
|
||||
}
|
||||
+9
-5
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.entity.Cat;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class CatVariantKeys {
|
||||
/**
|
||||
* {@code minecraft:all_black}
|
||||
@@ -107,7 +105,13 @@ public final class CatVariantKeys {
|
||||
private CatVariantKeys() {
|
||||
}
|
||||
|
||||
private static TypedKey<Cat.Type> create(final Key key) {
|
||||
/**
|
||||
* Creates a typed key for {@link Cat.Type} in the registry {@code minecraft:cat_variant}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
public static TypedKey<Cat.Type> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.CAT_VARIANT, key);
|
||||
}
|
||||
}
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.entity.Chicken;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#CHICKEN_SOUND_VARIANT}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
* changed (including removals) on any Minecraft version
|
||||
* bump, so cross-version compatibility is not provided on the
|
||||
* same level as it is on most of the other API.
|
||||
*/
|
||||
@SuppressWarnings({
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@NullMarked
|
||||
@GeneratedClass
|
||||
public final class ChickenSoundVariantKeys {
|
||||
/**
|
||||
* {@code minecraft:classic}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Chicken.SoundVariant> CLASSIC = create(key("classic"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:picky}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Chicken.SoundVariant> PICKY = create(key("picky"));
|
||||
|
||||
private ChickenSoundVariantKeys() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a typed key for {@link Chicken.SoundVariant} in the registry {@code minecraft:chicken_sound_variant}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
public static TypedKey<Chicken.SoundVariant> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.CHICKEN_SOUND_VARIANT, key);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.entity.Chicken;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#CHICKEN_VARIANT}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
* changed (including removals) on any Minecraft version
|
||||
* bump, so cross-version compatibility is not provided on the
|
||||
* same level as it is on most of the other API.
|
||||
*/
|
||||
@SuppressWarnings({
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@NullMarked
|
||||
@GeneratedClass
|
||||
public final class ChickenVariantKeys {
|
||||
/**
|
||||
* {@code minecraft:cold}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Chicken.Variant> COLD = create(key("cold"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:temperate}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Chicken.Variant> TEMPERATE = create(key("temperate"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:warm}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Chicken.Variant> WARM = create(key("warm"));
|
||||
|
||||
private ChickenVariantKeys() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a typed key for {@link Chicken.Variant} in the registry {@code minecraft:chicken_variant}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
public static TypedKey<Chicken.Variant> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.CHICKEN_VARIANT, key);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.entity.Cow;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#COW_SOUND_VARIANT}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
* changed (including removals) on any Minecraft version
|
||||
* bump, so cross-version compatibility is not provided on the
|
||||
* same level as it is on most of the other API.
|
||||
*/
|
||||
@SuppressWarnings({
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@NullMarked
|
||||
@GeneratedClass
|
||||
public final class CowSoundVariantKeys {
|
||||
/**
|
||||
* {@code minecraft:classic}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Cow.SoundVariant> CLASSIC = create(key("classic"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:moody}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Cow.SoundVariant> MOODY = create(key("moody"));
|
||||
|
||||
private CowSoundVariantKeys() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a typed key for {@link Cow.SoundVariant} in the registry {@code minecraft:cow_sound_variant}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
public static TypedKey<Cow.SoundVariant> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.COW_SOUND_VARIANT, key);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.entity.Cow;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#COW_VARIANT}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
* changed (including removals) on any Minecraft version
|
||||
* bump, so cross-version compatibility is not provided on the
|
||||
* same level as it is on most of the other API.
|
||||
*/
|
||||
@SuppressWarnings({
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@NullMarked
|
||||
@GeneratedClass
|
||||
public final class CowVariantKeys {
|
||||
/**
|
||||
* {@code minecraft:cold}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Cow.Variant> COLD = create(key("cold"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:temperate}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Cow.Variant> TEMPERATE = create(key("temperate"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:warm}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Cow.Variant> WARM = create(key("warm"));
|
||||
|
||||
private CowVariantKeys() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a typed key for {@link Cow.Variant} in the registry {@code minecraft:cow_variant}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
public static TypedKey<Cow.Variant> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.COW_VARIANT, key);
|
||||
}
|
||||
}
|
||||
+17
-6
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.damage.DamageType;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class DamageTypeKeys {
|
||||
/**
|
||||
* {@code minecraft:arrow}
|
||||
@@ -286,6 +284,13 @@ public final class DamageTypeKeys {
|
||||
*/
|
||||
public static final TypedKey<DamageType> SONIC_BOOM = create(key("sonic_boom"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:spear}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DamageType> SPEAR = create(key("spear"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:spit}
|
||||
*
|
||||
@@ -314,6 +319,13 @@ public final class DamageTypeKeys {
|
||||
*/
|
||||
public static final TypedKey<DamageType> STING = create(key("sting"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:sulfur_cube_hot}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DamageType> SULFUR_CUBE_HOT = create(key("sulfur_cube_hot"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:sweet_berry_bush}
|
||||
*
|
||||
@@ -374,12 +386,11 @@ public final class DamageTypeKeys {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a key for {@link DamageType} in the registry {@code minecraft:damage_type}.
|
||||
* Creates a typed key for {@link DamageType} in the registry {@code minecraft:damage_type}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TypedKey<DamageType> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.DAMAGE_TYPE, key);
|
||||
}
|
||||
+888
@@ -0,0 +1,888 @@
|
||||
package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.datacomponent.DataComponentType;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#DATA_COMPONENT_TYPE}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
* changed (including removals) on any Minecraft version
|
||||
* bump, so cross-version compatibility is not provided on the
|
||||
* same level as it is on most of the other API.
|
||||
*/
|
||||
@SuppressWarnings({
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@NullMarked
|
||||
@GeneratedClass
|
||||
public final class DataComponentTypeKeys {
|
||||
/**
|
||||
* {@code minecraft:additional_trade_cost}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> ADDITIONAL_TRADE_COST = create(key("additional_trade_cost"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:attack_animation}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> ATTACK_ANIMATION = create(key("attack_animation"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:attack_range}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> ATTACK_RANGE = create(key("attack_range"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:attribute_modifiers}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> ATTRIBUTE_MODIFIERS = create(key("attribute_modifiers"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:axolotl/variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> AXOLOTL_VARIANT = create(key("axolotl/variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:banner_patterns}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> BANNER_PATTERNS = create(key("banner_patterns"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:base_color}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> BASE_COLOR = create(key("base_color"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:bees}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> BEES = create(key("bees"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:block_entity_data}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> BLOCK_ENTITY_DATA = create(key("block_entity_data"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:block_state}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> BLOCK_STATE = create(key("block_state"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:block_transformer}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> BLOCK_TRANSFORMER = create(key("block_transformer"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:blocks_attacks}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> BLOCKS_ATTACKS = create(key("blocks_attacks"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:break_sound}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> BREAK_SOUND = create(key("break_sound"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:brewing_fuel}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> BREWING_FUEL = create(key("brewing_fuel"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:bucket_entity_data}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> BUCKET_ENTITY_DATA = create(key("bucket_entity_data"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:bundle_contents}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> BUNDLE_CONTENTS = create(key("bundle_contents"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:can_break}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> CAN_BREAK = create(key("can_break"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:can_place_on}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> CAN_PLACE_ON = create(key("can_place_on"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:cat/collar}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> CAT_COLLAR = create(key("cat/collar"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:cat/sound_variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> CAT_SOUND_VARIANT = create(key("cat/sound_variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:cat/variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> CAT_VARIANT = create(key("cat/variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:charged_projectiles}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> CHARGED_PROJECTILES = create(key("charged_projectiles"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:chicken/sound_variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> CHICKEN_SOUND_VARIANT = create(key("chicken/sound_variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:chicken/variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> CHICKEN_VARIANT = create(key("chicken/variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:compostable}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> COMPOSTABLE = create(key("compostable"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:consumable}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> CONSUMABLE = create(key("consumable"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:container}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> CONTAINER = create(key("container"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:container_loot}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> CONTAINER_LOOT = create(key("container_loot"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:cooking_fuel}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> COOKING_FUEL = create(key("cooking_fuel"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:cow/sound_variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> COW_SOUND_VARIANT = create(key("cow/sound_variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:cow/variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> COW_VARIANT = create(key("cow/variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:creative_slot_lock}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> CREATIVE_SLOT_LOCK = create(key("creative_slot_lock"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:cushion/color}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> CUSHION_COLOR = create(key("cushion/color"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:custom_data}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> CUSTOM_DATA = create(key("custom_data"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:custom_model_data}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> CUSTOM_MODEL_DATA = create(key("custom_model_data"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:custom_name}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> CUSTOM_NAME = create(key("custom_name"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:damage}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> DAMAGE = create(key("damage"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:damage_resistant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> DAMAGE_RESISTANT = create(key("damage_resistant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:damage_type}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> DAMAGE_TYPE = create(key("damage_type"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:death_protection}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> DEATH_PROTECTION = create(key("death_protection"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:debug_stick_state}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> DEBUG_STICK_STATE = create(key("debug_stick_state"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:dye}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> DYE = create(key("dye"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:dyed_color}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> DYED_COLOR = create(key("dyed_color"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:enchantable}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> ENCHANTABLE = create(key("enchantable"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:enchantment_glint_override}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> ENCHANTMENT_GLINT_OVERRIDE = create(key("enchantment_glint_override"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:enchantments}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> ENCHANTMENTS = create(key("enchantments"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:entity_data}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> ENTITY_DATA = create(key("entity_data"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:equippable}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> EQUIPPABLE = create(key("equippable"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:firework_explosion}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> FIREWORK_EXPLOSION = create(key("firework_explosion"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:fireworks}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> FIREWORKS = create(key("fireworks"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:food}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> FOOD = create(key("food"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:fox/variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> FOX_VARIANT = create(key("fox/variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:frog/variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> FROG_VARIANT = create(key("frog/variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:glider}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> GLIDER = create(key("glider"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:horse/variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> HORSE_VARIANT = create(key("horse/variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:instrument}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> INSTRUMENT = create(key("instrument"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:intangible_projectile}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> INTANGIBLE_PROJECTILE = create(key("intangible_projectile"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:interact_animation}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> INTERACT_ANIMATION = create(key("interact_animation"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:item_model}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> ITEM_MODEL = create(key("item_model"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:item_name}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> ITEM_NAME = create(key("item_name"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:jukebox_playable}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> JUKEBOX_PLAYABLE = create(key("jukebox_playable"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:kinetic_weapon}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> KINETIC_WEAPON = create(key("kinetic_weapon"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:llama/variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> LLAMA_VARIANT = create(key("llama/variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:lock}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> LOCK = create(key("lock"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:lodestone_tracker}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> LODESTONE_TRACKER = create(key("lodestone_tracker"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:lore}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> LORE = create(key("lore"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:map_decorations}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> MAP_DECORATIONS = create(key("map_decorations"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:map_id}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> MAP_ID = create(key("map_id"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:map_post_processing}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> MAP_POST_PROCESSING = create(key("map_post_processing"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:max_damage}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> MAX_DAMAGE = create(key("max_damage"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:max_stack_size}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> MAX_STACK_SIZE = create(key("max_stack_size"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:minimum_attack_charge}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> MINIMUM_ATTACK_CHARGE = create(key("minimum_attack_charge"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:mob_visibility}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> MOB_VISIBILITY = create(key("mob_visibility"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:mooshroom/variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> MOOSHROOM_VARIANT = create(key("mooshroom/variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:note_block_sound}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> NOTE_BLOCK_SOUND = create(key("note_block_sound"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:ominous_bottle_amplifier}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> OMINOUS_BOTTLE_AMPLIFIER = create(key("ominous_bottle_amplifier"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:painting/variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> PAINTING_VARIANT = create(key("painting/variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:parrot/variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> PARROT_VARIANT = create(key("parrot/variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:piercing_weapon}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> PIERCING_WEAPON = create(key("piercing_weapon"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:pig/sound_variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> PIG_SOUND_VARIANT = create(key("pig/sound_variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:pig/variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> PIG_VARIANT = create(key("pig/variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:pot_decorations}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> POT_DECORATIONS = create(key("pot_decorations"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:potion_contents}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> POTION_CONTENTS = create(key("potion_contents"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:potion_duration_scale}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> POTION_DURATION_SCALE = create(key("potion_duration_scale"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:profile}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> PROFILE = create(key("profile"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:provides_banner_patterns}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> PROVIDES_BANNER_PATTERNS = create(key("provides_banner_patterns"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:provides_pottery_pattern}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> PROVIDES_POTTERY_PATTERN = create(key("provides_pottery_pattern"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:provides_trim_material}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> PROVIDES_TRIM_MATERIAL = create(key("provides_trim_material"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:rabbit/variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> RABBIT_VARIANT = create(key("rabbit/variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:rarity}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> RARITY = create(key("rarity"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:recipes}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> RECIPES = create(key("recipes"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:repair_cost}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> REPAIR_COST = create(key("repair_cost"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:repairable}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> REPAIRABLE = create(key("repairable"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:salmon/size}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> SALMON_SIZE = create(key("salmon/size"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:sheep/color}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> SHEEP_COLOR = create(key("sheep/color"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:shulker/color}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> SHULKER_COLOR = create(key("shulker/color"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:sign_text_back}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> SIGN_TEXT_BACK = create(key("sign_text_back"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:sign_text_front}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> SIGN_TEXT_FRONT = create(key("sign_text_front"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:stored_enchantments}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> STORED_ENCHANTMENTS = create(key("stored_enchantments"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:sulfur_cube_content}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> SULFUR_CUBE_CONTENT = create(key("sulfur_cube_content"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:suspicious_stew_effects}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> SUSPICIOUS_STEW_EFFECTS = create(key("suspicious_stew_effects"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:tool}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> TOOL = create(key("tool"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:tooltip_display}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> TOOLTIP_DISPLAY = create(key("tooltip_display"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:tooltip_style}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> TOOLTIP_STYLE = create(key("tooltip_style"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:trim}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> TRIM = create(key("trim"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:tropical_fish/base_color}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> TROPICAL_FISH_BASE_COLOR = create(key("tropical_fish/base_color"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:tropical_fish/pattern}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> TROPICAL_FISH_PATTERN = create(key("tropical_fish/pattern"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:tropical_fish/pattern_color}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> TROPICAL_FISH_PATTERN_COLOR = create(key("tropical_fish/pattern_color"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:unbreakable}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> UNBREAKABLE = create(key("unbreakable"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:use_cooldown}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> USE_COOLDOWN = create(key("use_cooldown"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:use_effects}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> USE_EFFECTS = create(key("use_effects"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:use_remainder}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> USE_REMAINDER = create(key("use_remainder"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:villager/variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> VILLAGER_VARIANT = create(key("villager/variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:villager_food}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> VILLAGER_FOOD = create(key("villager_food"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:waxed}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> WAXED = create(key("waxed"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:weapon}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> WEAPON = create(key("weapon"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:wolf/collar}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> WOLF_COLLAR = create(key("wolf/collar"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:wolf/sound_variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> WOLF_SOUND_VARIANT = create(key("wolf/sound_variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:wolf/variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> WOLF_VARIANT = create(key("wolf/variant"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:writable_book_content}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> WRITABLE_BOOK_CONTENT = create(key("writable_book_content"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:written_book_content}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> WRITTEN_BOOK_CONTENT = create(key("written_book_content"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:zombie_nautilus/variant}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<DataComponentType> ZOMBIE_NAUTILUS_VARIANT = create(key("zombie_nautilus/variant"));
|
||||
|
||||
private DataComponentTypeKeys() {
|
||||
}
|
||||
|
||||
private static TypedKey<DataComponentType> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.DATA_COMPONENT_TYPE, key);
|
||||
}
|
||||
}
|
||||
+201
@@ -0,0 +1,201 @@
|
||||
package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.block.pot.PotPatternType;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#DECORATED_POT_PATTERN}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
* changed (including removals) on any Minecraft version
|
||||
* bump, so cross-version compatibility is not provided on the
|
||||
* same level as it is on most of the other API.
|
||||
*/
|
||||
@SuppressWarnings({
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@NullMarked
|
||||
@GeneratedClass
|
||||
public final class DecoratedPotPatternKeys {
|
||||
/**
|
||||
* {@code minecraft:angler}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> ANGLER = create(key("angler"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:archer}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> ARCHER = create(key("archer"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:arms_up}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> ARMS_UP = create(key("arms_up"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:blade}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> BLADE = create(key("blade"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:brewer}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> BREWER = create(key("brewer"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:burn}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> BURN = create(key("burn"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:danger}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> DANGER = create(key("danger"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:explorer}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> EXPLORER = create(key("explorer"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:flow}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> FLOW = create(key("flow"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:friend}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> FRIEND = create(key("friend"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:guster}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> GUSTER = create(key("guster"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:heart}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> HEART = create(key("heart"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:heartbreak}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> HEARTBREAK = create(key("heartbreak"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:howl}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> HOWL = create(key("howl"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:miner}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> MINER = create(key("miner"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:mourner}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> MOURNER = create(key("mourner"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:plenty}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> PLENTY = create(key("plenty"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:prize}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> PRIZE = create(key("prize"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:scrape}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> SCRAPE = create(key("scrape"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:sheaf}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> SHEAF = create(key("sheaf"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:shelter}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> SHELTER = create(key("shelter"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:skull}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> SKULL = create(key("skull"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:snort}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotPatternType> SNORT = create(key("snort"));
|
||||
|
||||
private DecoratedPotPatternKeys() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a typed key for {@link PotPatternType} in the registry {@code minecraft:decorated_pot_pattern}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
public static TypedKey<PotPatternType> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.DECORATED_POT_PATTERN, key);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.dialog.Dialog;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#DIALOG}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
* changed (including removals) on any Minecraft version
|
||||
* bump, so cross-version compatibility is not provided on the
|
||||
* same level as it is on most of the other API.
|
||||
*/
|
||||
@SuppressWarnings({
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@NullMarked
|
||||
@GeneratedClass
|
||||
public final class DialogKeys {
|
||||
/**
|
||||
* {@code minecraft:custom_options}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Dialog> CUSTOM_OPTIONS = create(key("custom_options"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:quick_actions}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Dialog> QUICK_ACTIONS = create(key("quick_actions"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:server_links}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Dialog> SERVER_LINKS = create(key("server_links"));
|
||||
|
||||
private DialogKeys() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a typed key for {@link Dialog} in the registry {@code minecraft:dialog}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
public static TypedKey<Dialog> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.DIALOG, key);
|
||||
}
|
||||
}
|
||||
+10
-6
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class EnchantmentKeys {
|
||||
/**
|
||||
* {@code minecraft:aqua_affinity}
|
||||
@@ -174,6 +172,13 @@ public final class EnchantmentKeys {
|
||||
*/
|
||||
public static final TypedKey<Enchantment> LUCK_OF_THE_SEA = create(key("luck_of_the_sea"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:lunge}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Enchantment> LUNGE = create(key("lunge"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:lure}
|
||||
*
|
||||
@@ -325,12 +330,11 @@ public final class EnchantmentKeys {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a key for {@link Enchantment} in the registry {@code minecraft:enchantment}.
|
||||
* Creates a typed key for {@link Enchantment} in the registry {@code minecraft:enchantment}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TypedKey<Enchantment> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.ENCHANTMENT, key);
|
||||
}
|
||||
+2
-4
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.Fluid;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class FluidKeys {
|
||||
/**
|
||||
* {@code minecraft:empty}
|
||||
+9
-5
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.entity.Frog;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class FrogVariantKeys {
|
||||
/**
|
||||
* {@code minecraft:cold}
|
||||
@@ -51,7 +49,13 @@ public final class FrogVariantKeys {
|
||||
private FrogVariantKeys() {
|
||||
}
|
||||
|
||||
private static TypedKey<Frog.Variant> create(final Key key) {
|
||||
/**
|
||||
* Creates a typed key for {@link Frog.Variant} in the registry {@code minecraft:frog_variant}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
public static TypedKey<Frog.Variant> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.FROG_VARIANT, key);
|
||||
}
|
||||
}
|
||||
+10
-6
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.GameEvent;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class GameEventKeys {
|
||||
/**
|
||||
* {@code minecraft:block_activate}
|
||||
@@ -90,6 +88,13 @@ public final class GameEventKeys {
|
||||
*/
|
||||
public static final TypedKey<GameEvent> BLOCK_PLACE = create(key("block_place"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:bounce}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameEvent> BOUNCE = create(key("bounce"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:container_close}
|
||||
*
|
||||
@@ -451,12 +456,11 @@ public final class GameEventKeys {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a key for {@link GameEvent} in the registry {@code minecraft:game_event}.
|
||||
* Creates a typed key for {@link GameEvent} in the registry {@code minecraft:game_event}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TypedKey<GameEvent> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.GAME_EVENT, key);
|
||||
}
|
||||
@@ -0,0 +1,451 @@
|
||||
package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.GameRule;
|
||||
import org.bukkit.MinecraftExperimental;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#GAME_RULE}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
* changed (including removals) on any Minecraft version
|
||||
* bump, so cross-version compatibility is not provided on the
|
||||
* same level as it is on most of the other API.
|
||||
*/
|
||||
@SuppressWarnings({
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@NullMarked
|
||||
@GeneratedClass
|
||||
public final class GameRuleKeys {
|
||||
/**
|
||||
* {@code minecraft:advance_time}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> ADVANCE_TIME = create(key("advance_time"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:advance_weather}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> ADVANCE_WEATHER = create(key("advance_weather"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:allow_entering_nether_using_portals}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> ALLOW_ENTERING_NETHER_USING_PORTALS = create(key("allow_entering_nether_using_portals"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:block_drops}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> BLOCK_DROPS = create(key("block_drops"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:block_explosion_drop_decay}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> BLOCK_EXPLOSION_DROP_DECAY = create(key("block_explosion_drop_decay"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:command_block_output}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> COMMAND_BLOCK_OUTPUT = create(key("command_block_output"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:command_blocks_work}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> COMMAND_BLOCKS_WORK = create(key("command_blocks_work"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:drowning_damage}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> DROWNING_DAMAGE = create(key("drowning_damage"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:elytra_movement_check}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> ELYTRA_MOVEMENT_CHECK = create(key("elytra_movement_check"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:ender_pearls_vanish_on_death}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> ENDER_PEARLS_VANISH_ON_DEATH = create(key("ender_pearls_vanish_on_death"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:entity_drops}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> ENTITY_DROPS = create(key("entity_drops"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:fall_damage}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> FALL_DAMAGE = create(key("fall_damage"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:fire_damage}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> FIRE_DAMAGE = create(key("fire_damage"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:fire_spread_radius_around_player}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> FIRE_SPREAD_RADIUS_AROUND_PLAYER = create(key("fire_spread_radius_around_player"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:forgive_dead_players}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> FORGIVE_DEAD_PLAYERS = create(key("forgive_dead_players"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:freeze_damage}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> FREEZE_DAMAGE = create(key("freeze_damage"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:global_sound_events}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> GLOBAL_SOUND_EVENTS = create(key("global_sound_events"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:immediate_respawn}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> IMMEDIATE_RESPAWN = create(key("immediate_respawn"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:keep_inventory}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> KEEP_INVENTORY = create(key("keep_inventory"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:lava_source_conversion}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> LAVA_SOURCE_CONVERSION = create(key("lava_source_conversion"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:limited_crafting}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> LIMITED_CRAFTING = create(key("limited_crafting"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:locator_bar}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> LOCATOR_BAR = create(key("locator_bar"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:log_admin_commands}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> LOG_ADMIN_COMMANDS = create(key("log_admin_commands"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:max_block_modifications}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> MAX_BLOCK_MODIFICATIONS = create(key("max_block_modifications"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:max_command_forks}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> MAX_COMMAND_FORKS = create(key("max_command_forks"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:max_command_sequence_length}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> MAX_COMMAND_SEQUENCE_LENGTH = create(key("max_command_sequence_length"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:max_entity_cramming}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> MAX_ENTITY_CRAMMING = create(key("max_entity_cramming"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:max_minecart_speed}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
@MinecraftExperimental(MinecraftExperimental.Requires.MINECART_IMPROVEMENTS)
|
||||
public static final TypedKey<GameRule<?>> MAX_MINECART_SPEED = create(key("max_minecart_speed"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:max_snow_accumulation_height}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> MAX_SNOW_ACCUMULATION_HEIGHT = create(key("max_snow_accumulation_height"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:mob_drops}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> MOB_DROPS = create(key("mob_drops"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:mob_explosion_drop_decay}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> MOB_EXPLOSION_DROP_DECAY = create(key("mob_explosion_drop_decay"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:mob_griefing}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> MOB_GRIEFING = create(key("mob_griefing"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:natural_health_regeneration}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> NATURAL_HEALTH_REGENERATION = create(key("natural_health_regeneration"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:player_movement_check}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> PLAYER_MOVEMENT_CHECK = create(key("player_movement_check"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:players_nether_portal_creative_delay}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> PLAYERS_NETHER_PORTAL_CREATIVE_DELAY = create(key("players_nether_portal_creative_delay"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:players_nether_portal_default_delay}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> PLAYERS_NETHER_PORTAL_DEFAULT_DELAY = create(key("players_nether_portal_default_delay"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:players_sleeping_percentage}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> PLAYERS_SLEEPING_PERCENTAGE = create(key("players_sleeping_percentage"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:projectiles_can_break_blocks}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> PROJECTILES_CAN_BREAK_BLOCKS = create(key("projectiles_can_break_blocks"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:pvp}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> PVP = create(key("pvp"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:raids}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> RAIDS = create(key("raids"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:random_tick_speed}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> RANDOM_TICK_SPEED = create(key("random_tick_speed"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:reduced_debug_info}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> REDUCED_DEBUG_INFO = create(key("reduced_debug_info"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:respawn_radius}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> RESPAWN_RADIUS = create(key("respawn_radius"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:send_command_feedback}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> SEND_COMMAND_FEEDBACK = create(key("send_command_feedback"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:show_advancement_messages}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> SHOW_ADVANCEMENT_MESSAGES = create(key("show_advancement_messages"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:show_death_messages}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> SHOW_DEATH_MESSAGES = create(key("show_death_messages"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:spawn_mobs}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> SPAWN_MOBS = create(key("spawn_mobs"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:spawn_monsters}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> SPAWN_MONSTERS = create(key("spawn_monsters"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:spawn_patrols}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> SPAWN_PATROLS = create(key("spawn_patrols"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:spawn_phantoms}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> SPAWN_PHANTOMS = create(key("spawn_phantoms"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:spawn_wandering_traders}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> SPAWN_WANDERING_TRADERS = create(key("spawn_wandering_traders"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:spawn_wardens}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> SPAWN_WARDENS = create(key("spawn_wardens"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:spawner_blocks_work}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> SPAWNER_BLOCKS_WORK = create(key("spawner_blocks_work"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:spectators_generate_chunks}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> SPECTATORS_GENERATE_CHUNKS = create(key("spectators_generate_chunks"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:spread_vines}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> SPREAD_VINES = create(key("spread_vines"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:tnt_explodes}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> TNT_EXPLODES = create(key("tnt_explodes"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:tnt_explosion_drop_decay}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> TNT_EXPLOSION_DROP_DECAY = create(key("tnt_explosion_drop_decay"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:universal_anger}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> UNIVERSAL_ANGER = create(key("universal_anger"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:water_source_conversion}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<GameRule<?>> WATER_SOURCE_CONVERSION = create(key("water_source_conversion"));
|
||||
|
||||
private GameRuleKeys() {
|
||||
}
|
||||
|
||||
private static TypedKey<GameRule<?>> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.GAME_RULE, key);
|
||||
}
|
||||
}
|
||||
+3
-6
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.MusicInstrument;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class InstrumentKeys {
|
||||
/**
|
||||
* {@code minecraft:admire_goat_horn}
|
||||
@@ -87,12 +85,11 @@ public final class InstrumentKeys {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a key for {@link MusicInstrument} in the registry {@code minecraft:instrument}.
|
||||
* Creates a typed key for {@link MusicInstrument} in the registry {@code minecraft:instrument}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TypedKey<MusicInstrument> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.INSTRUMENT, key);
|
||||
}
|
||||
+1990
-81
File diff suppressed because it is too large.
Load diff
+24
-6
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.JukeboxSong;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class JukeboxSongKeys {
|
||||
/**
|
||||
* {@code minecraft:11}
|
||||
@@ -55,6 +53,13 @@ public final class JukeboxSongKeys {
|
||||
*/
|
||||
public static final TypedKey<JukeboxSong> BLOCKS = create(key("blocks"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:bounce}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<JukeboxSong> BOUNCE = create(key("bounce"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:cat}
|
||||
*
|
||||
@@ -90,6 +95,13 @@ public final class JukeboxSongKeys {
|
||||
*/
|
||||
public static final TypedKey<JukeboxSong> FAR = create(key("far"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:lava_chicken}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<JukeboxSong> LAVA_CHICKEN = create(key("lava_chicken"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:mall}
|
||||
*
|
||||
@@ -146,6 +158,13 @@ public final class JukeboxSongKeys {
|
||||
*/
|
||||
public static final TypedKey<JukeboxSong> STRAD = create(key("strad"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:tears}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<JukeboxSong> TEARS = create(key("tears"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:wait}
|
||||
*
|
||||
@@ -164,12 +183,11 @@ public final class JukeboxSongKeys {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a key for {@link JukeboxSong} in the registry {@code minecraft:jukebox_song}.
|
||||
* Creates a typed key for {@link JukeboxSong} in the registry {@code minecraft:jukebox_song}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TypedKey<JukeboxSong> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.JUKEBOX_SONG, key);
|
||||
}
|
||||
+37
-4
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.map.MapCursor;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,10 +22,23 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class MapDecorationTypeKeys {
|
||||
/**
|
||||
* {@code minecraft:abandoned_camp}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<MapCursor.Type> ABANDONED_CAMP = create(key("abandoned_camp"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:ancient_city}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<MapCursor.Type> ANCIENT_CITY = create(key("ancient_city"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:banner_black}
|
||||
*
|
||||
@@ -146,6 +158,13 @@ public final class MapDecorationTypeKeys {
|
||||
*/
|
||||
public static final TypedKey<MapCursor.Type> BLUE_MARKER = create(key("blue_marker"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:desert_pyramid}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<MapCursor.Type> DESERT_PYRAMID = create(key("desert_pyramid"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:frame}
|
||||
*
|
||||
@@ -167,6 +186,13 @@ public final class MapDecorationTypeKeys {
|
||||
*/
|
||||
public static final TypedKey<MapCursor.Type> MANSION = create(key("mansion"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:mineshaft}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<MapCursor.Type> MINESHAFT = create(key("mineshaft"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:monument}
|
||||
*
|
||||
@@ -174,6 +200,13 @@ public final class MapDecorationTypeKeys {
|
||||
*/
|
||||
public static final TypedKey<MapCursor.Type> MONUMENT = create(key("monument"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:ocean_ruin_warm}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<MapCursor.Type> OCEAN_RUIN_WARM = create(key("ocean_ruin_warm"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:player}
|
||||
*
|
||||
+2
-4
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.inventory.MenuType;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class MenuTypeKeys {
|
||||
/**
|
||||
* {@code minecraft:anvil}
|
||||
+9
-4
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class MobEffectKeys {
|
||||
/**
|
||||
* {@code minecraft:absorption}
|
||||
@@ -48,6 +46,13 @@ public final class MobEffectKeys {
|
||||
*/
|
||||
public static final TypedKey<PotionEffectType> BLINDNESS = create(key("blindness"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:breath_of_the_nautilus}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PotionEffectType> BREATH_OF_THE_NAUTILUS = create(key("breath_of_the_nautilus"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:conduit_power}
|
||||
*
|
||||
+10
-6
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.Art;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class PaintingVariantKeys {
|
||||
/**
|
||||
* {@code minecraft:alban}
|
||||
@@ -125,6 +123,13 @@ public final class PaintingVariantKeys {
|
||||
*/
|
||||
public static final TypedKey<Art> CREEBET = create(key("creebet"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:dennis}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Art> DENNIS = create(key("dennis"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:donkey_kong}
|
||||
*
|
||||
@@ -381,12 +386,11 @@ public final class PaintingVariantKeys {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a key for {@link Art} in the registry {@code minecraft:painting_variant}.
|
||||
* Creates a typed key for {@link Art} in the registry {@code minecraft:painting_variant}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TypedKey<Art> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.PAINTING_VARIANT, key);
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.entity.Pig;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#PIG_SOUND_VARIANT}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
* changed (including removals) on any Minecraft version
|
||||
* bump, so cross-version compatibility is not provided on the
|
||||
* same level as it is on most of the other API.
|
||||
*/
|
||||
@SuppressWarnings({
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@NullMarked
|
||||
@GeneratedClass
|
||||
public final class PigSoundVariantKeys {
|
||||
/**
|
||||
* {@code minecraft:big}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Pig.SoundVariant> BIG = create(key("big"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:classic}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Pig.SoundVariant> CLASSIC = create(key("classic"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:mini}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Pig.SoundVariant> MINI = create(key("mini"));
|
||||
|
||||
private PigSoundVariantKeys() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a typed key for {@link Pig.SoundVariant} in the registry {@code minecraft:pig_sound_variant}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
public static TypedKey<Pig.SoundVariant> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.PIG_SOUND_VARIANT, key);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.entity.Pig;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#PIG_VARIANT}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
* changed (including removals) on any Minecraft version
|
||||
* bump, so cross-version compatibility is not provided on the
|
||||
* same level as it is on most of the other API.
|
||||
*/
|
||||
@SuppressWarnings({
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@NullMarked
|
||||
@GeneratedClass
|
||||
public final class PigVariantKeys {
|
||||
/**
|
||||
* {@code minecraft:cold}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Pig.Variant> COLD = create(key("cold"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:temperate}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Pig.Variant> TEMPERATE = create(key("temperate"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:warm}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Pig.Variant> WARM = create(key("warm"));
|
||||
|
||||
private PigVariantKeys() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a typed key for {@link Pig.Variant} in the registry {@code minecraft:pig_variant}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
public static TypedKey<Pig.Variant> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.PIG_VARIANT, key);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,181 @@
|
||||
package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.entity.poi.PoiType;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#POINT_OF_INTEREST_TYPE}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
* changed (including removals) on any Minecraft version
|
||||
* bump, so cross-version compatibility is not provided on the
|
||||
* same level as it is on most of the other API.
|
||||
*/
|
||||
@SuppressWarnings({
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@NullMarked
|
||||
@GeneratedClass
|
||||
public final class PoiTypeKeys {
|
||||
/**
|
||||
* {@code minecraft:armorer}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> ARMORER = create(key("armorer"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:bee_nest}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> BEE_NEST = create(key("bee_nest"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:beehive}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> BEEHIVE = create(key("beehive"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:butcher}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> BUTCHER = create(key("butcher"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:cartographer}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> CARTOGRAPHER = create(key("cartographer"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:cleric}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> CLERIC = create(key("cleric"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:farmer}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> FARMER = create(key("farmer"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:fisherman}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> FISHERMAN = create(key("fisherman"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:fletcher}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> FLETCHER = create(key("fletcher"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:home}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> HOME = create(key("home"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:leatherworker}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> LEATHERWORKER = create(key("leatherworker"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:librarian}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> LIBRARIAN = create(key("librarian"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:lightning_rod}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> LIGHTNING_ROD = create(key("lightning_rod"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:lodestone}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> LODESTONE = create(key("lodestone"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:mason}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> MASON = create(key("mason"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:meeting}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> MEETING = create(key("meeting"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:nether_portal}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> NETHER_PORTAL = create(key("nether_portal"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:shepherd}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> SHEPHERD = create(key("shepherd"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:test_instance}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> TEST_INSTANCE = create(key("test_instance"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:toolsmith}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> TOOLSMITH = create(key("toolsmith"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:weaponsmith}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<PoiType> WEAPONSMITH = create(key("weaponsmith"));
|
||||
|
||||
private PoiTypeKeys() {
|
||||
}
|
||||
|
||||
private static TypedKey<PoiType> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.POINT_OF_INTEREST_TYPE, key);
|
||||
}
|
||||
}
|
||||
+2410
-32
File diff suppressed because it is too large.
Load diff
+129
-6
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.generator.structure.Structure;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,10 +22,135 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class StructureKeys {
|
||||
/**
|
||||
* {@code minecraft:abandoned_camp_bamboo_jungle}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Structure> ABANDONED_CAMP_BAMBOO_JUNGLE = create(key("abandoned_camp_bamboo_jungle"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:abandoned_camp_birch_forest}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Structure> ABANDONED_CAMP_BIRCH_FOREST = create(key("abandoned_camp_birch_forest"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:abandoned_camp_cherry_grove}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Structure> ABANDONED_CAMP_CHERRY_GROVE = create(key("abandoned_camp_cherry_grove"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:abandoned_camp_dappled_forest}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Structure> ABANDONED_CAMP_DAPPLED_FOREST = create(key("abandoned_camp_dappled_forest"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:abandoned_camp_flower_forest}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Structure> ABANDONED_CAMP_FLOWER_FOREST = create(key("abandoned_camp_flower_forest"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:abandoned_camp_forest}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Structure> ABANDONED_CAMP_FOREST = create(key("abandoned_camp_forest"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:abandoned_camp_meadow}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Structure> ABANDONED_CAMP_MEADOW = create(key("abandoned_camp_meadow"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:abandoned_camp_old_growth_birch_forest}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Structure> ABANDONED_CAMP_OLD_GROWTH_BIRCH_FOREST = create(key("abandoned_camp_old_growth_birch_forest"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:abandoned_camp_old_growth_pine_taiga}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Structure> ABANDONED_CAMP_OLD_GROWTH_PINE_TAIGA = create(key("abandoned_camp_old_growth_pine_taiga"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:abandoned_camp_old_growth_spruce_taiga}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Structure> ABANDONED_CAMP_OLD_GROWTH_SPRUCE_TAIGA = create(key("abandoned_camp_old_growth_spruce_taiga"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:abandoned_camp_pale_garden}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Structure> ABANDONED_CAMP_PALE_GARDEN = create(key("abandoned_camp_pale_garden"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:abandoned_camp_savanna}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Structure> ABANDONED_CAMP_SAVANNA = create(key("abandoned_camp_savanna"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:abandoned_camp_snowy_taiga}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Structure> ABANDONED_CAMP_SNOWY_TAIGA = create(key("abandoned_camp_snowy_taiga"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:abandoned_camp_sparse_jungle}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Structure> ABANDONED_CAMP_SPARSE_JUNGLE = create(key("abandoned_camp_sparse_jungle"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:abandoned_camp_swamp}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Structure> ABANDONED_CAMP_SWAMP = create(key("abandoned_camp_swamp"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:abandoned_camp_taiga}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Structure> ABANDONED_CAMP_TAIGA = create(key("abandoned_camp_taiga"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:abandoned_camp_windswept_forest}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Structure> ABANDONED_CAMP_WINDSWEPT_FOREST = create(key("abandoned_camp_windswept_forest"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:abandoned_camp_wooded_badlands}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Structure> ABANDONED_CAMP_WOODED_BADLANDS = create(key("abandoned_camp_wooded_badlands"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:ancient_city}
|
||||
*
|
||||
@@ -269,12 +393,11 @@ public final class StructureKeys {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a key for {@link Structure} in the registry {@code minecraft:worldgen/structure}.
|
||||
* Creates a typed key for {@link Structure} in the registry {@code minecraft:worldgen/structure}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TypedKey<Structure> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.STRUCTURE, key);
|
||||
}
|
||||
+2
-4
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.generator.structure.StructureType;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class StructureTypeKeys {
|
||||
/**
|
||||
* {@code minecraft:buried_treasure}
|
||||
+124
@@ -0,0 +1,124 @@
|
||||
package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.entity.SulfurCube;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#SULFUR_CUBE_ARCHETYPE}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
* changed (including removals) on any Minecraft version
|
||||
* bump, so cross-version compatibility is not provided on the
|
||||
* same level as it is on most of the other API.
|
||||
*/
|
||||
@SuppressWarnings({
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@NullMarked
|
||||
@GeneratedClass
|
||||
public final class SulfurCubeArchetypeKeys {
|
||||
/**
|
||||
* {@code minecraft:bouncy}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<SulfurCube.Archetype> BOUNCY = create(key("bouncy"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:explosive}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<SulfurCube.Archetype> EXPLOSIVE = create(key("explosive"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:fast_flat}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<SulfurCube.Archetype> FAST_FLAT = create(key("fast_flat"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:fast_sliding}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<SulfurCube.Archetype> FAST_SLIDING = create(key("fast_sliding"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:high_resistance}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<SulfurCube.Archetype> HIGH_RESISTANCE = create(key("high_resistance"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:hot}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<SulfurCube.Archetype> HOT = create(key("hot"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:light}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<SulfurCube.Archetype> LIGHT = create(key("light"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:regular}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<SulfurCube.Archetype> REGULAR = create(key("regular"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:slow_bouncy}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<SulfurCube.Archetype> SLOW_BOUNCY = create(key("slow_bouncy"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:slow_flat}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<SulfurCube.Archetype> SLOW_FLAT = create(key("slow_flat"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:slow_sliding}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<SulfurCube.Archetype> SLOW_SLIDING = create(key("slow_sliding"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:sticky}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<SulfurCube.Archetype> STICKY = create(key("sticky"));
|
||||
|
||||
private SulfurCubeArchetypeKeys() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a typed key for {@link SulfurCube.Archetype} in the registry {@code minecraft:sulfur_cube_archetype}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
public static TypedKey<SulfurCube.Archetype> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.SULFUR_CUBE_ARCHETYPE, key);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import io.papermc.paper.world.Timeline;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#TIMELINE}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
* changed (including removals) on any Minecraft version
|
||||
* bump, so cross-version compatibility is not provided on the
|
||||
* same level as it is on most of the other API.
|
||||
*/
|
||||
@SuppressWarnings({
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@NullMarked
|
||||
@GeneratedClass
|
||||
public final class TimelineKeys {
|
||||
/**
|
||||
* {@code minecraft:day}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Timeline> DAY = create(key("day"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:early_game}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Timeline> EARLY_GAME = create(key("early_game"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:moon}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Timeline> MOON = create(key("moon"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:villager_schedule}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Timeline> VILLAGER_SCHEDULE = create(key("villager_schedule"));
|
||||
|
||||
private TimelineKeys() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a typed key for {@link Timeline} in the registry {@code minecraft:timeline}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
public static TypedKey<Timeline> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.TIMELINE, key);
|
||||
}
|
||||
}
|
||||
+3
-6
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.inventory.meta.trim.TrimMaterial;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class TrimMaterialKeys {
|
||||
/**
|
||||
* {@code minecraft:amethyst}
|
||||
@@ -108,12 +106,11 @@ public final class TrimMaterialKeys {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a key for {@link TrimMaterial} in the registry {@code minecraft:trim_material}.
|
||||
* Creates a typed key for {@link TrimMaterial} in the registry {@code minecraft:trim_material}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TypedKey<TrimMaterial> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.TRIM_MATERIAL, key);
|
||||
}
|
||||
+3
-6
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.inventory.meta.trim.TrimPattern;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class TrimPatternKeys {
|
||||
/**
|
||||
* {@code minecraft:bolt}
|
||||
@@ -157,12 +155,11 @@ public final class TrimPatternKeys {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a key for {@link TrimPattern} in the registry {@code minecraft:trim_pattern}.
|
||||
* Creates a typed key for {@link TrimPattern} in the registry {@code minecraft:trim_pattern}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TypedKey<TrimPattern> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.TRIM_PATTERN, key);
|
||||
}
|
||||
+2
-4
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.entity.Villager;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class VillagerProfessionKeys {
|
||||
/**
|
||||
* {@code minecraft:armorer}
|
||||
+2
-4
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.entity.Villager;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class VillagerTypeKeys {
|
||||
/**
|
||||
* {@code minecraft:desert}
|
||||
@@ -0,0 +1,89 @@
|
||||
package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.entity.Wolf;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#WOLF_SOUND_VARIANT}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
* changed (including removals) on any Minecraft version
|
||||
* bump, so cross-version compatibility is not provided on the
|
||||
* same level as it is on most of the other API.
|
||||
*/
|
||||
@SuppressWarnings({
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@NullMarked
|
||||
@GeneratedClass
|
||||
public final class WolfSoundVariantKeys {
|
||||
/**
|
||||
* {@code minecraft:angry}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Wolf.SoundVariant> ANGRY = create(key("angry"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:big}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Wolf.SoundVariant> BIG = create(key("big"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:classic}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Wolf.SoundVariant> CLASSIC = create(key("classic"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:cute}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Wolf.SoundVariant> CUTE = create(key("cute"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:grumpy}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Wolf.SoundVariant> GRUMPY = create(key("grumpy"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:puglin}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Wolf.SoundVariant> PUGLIN = create(key("puglin"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:sad}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<Wolf.SoundVariant> SAD = create(key("sad"));
|
||||
|
||||
private WolfSoundVariantKeys() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a typed key for {@link Wolf.SoundVariant} in the registry {@code minecraft:wolf_sound_variant}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
public static TypedKey<Wolf.SoundVariant> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.WOLF_SOUND_VARIANT, key);
|
||||
}
|
||||
}
|
||||
+3
-6
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.entity.Wolf;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class WolfVariantKeys {
|
||||
/**
|
||||
* {@code minecraft:ashen}
|
||||
@@ -94,12 +92,11 @@ public final class WolfVariantKeys {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a key for {@link Wolf.Variant} in the registry {@code minecraft:wolf_variant}.
|
||||
* Creates a typed key for {@link Wolf.Variant} in the registry {@code minecraft:wolf_variant}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TypedKey<Wolf.Variant> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.WOLF_VARIANT, key);
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import io.papermc.paper.world.WorldClock;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#WORLD_CLOCK}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
* changed (including removals) on any Minecraft version
|
||||
* bump, so cross-version compatibility is not provided on the
|
||||
* same level as it is on most of the other API.
|
||||
*/
|
||||
@SuppressWarnings({
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@NullMarked
|
||||
@GeneratedClass
|
||||
public final class WorldClockKeys {
|
||||
/**
|
||||
* {@code minecraft:overworld}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<WorldClock> OVERWORLD = create(key("overworld"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:the_end}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<WorldClock> THE_END = create(key("the_end"));
|
||||
|
||||
private WorldClockKeys() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a typed key for {@link WorldClock} in the registry {@code minecraft:world_clock}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
public static TypedKey<WorldClock> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.WORLD_CLOCK, key);
|
||||
}
|
||||
}
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
package io.papermc.paper.registry.keys;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.TypedKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.entity.ZombieNautilus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#ZOMBIE_NAUTILUS_VARIANT}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
* changed (including removals) on any Minecraft version
|
||||
* bump, so cross-version compatibility is not provided on the
|
||||
* same level as it is on most of the other API.
|
||||
*/
|
||||
@SuppressWarnings({
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@NullMarked
|
||||
@GeneratedClass
|
||||
public final class ZombieNautilusVariantKeys {
|
||||
/**
|
||||
* {@code minecraft:temperate}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<ZombieNautilus.Variant> TEMPERATE = create(key("temperate"));
|
||||
|
||||
/**
|
||||
* {@code minecraft:warm}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TypedKey<ZombieNautilus.Variant> WARM = create(key("warm"));
|
||||
|
||||
private ZombieNautilusVariantKeys() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a typed key for {@link ZombieNautilus.Variant} in the registry {@code minecraft:zombie_nautilus_variant}.
|
||||
*
|
||||
* @param key the value's key in the registry
|
||||
* @return a new typed key
|
||||
*/
|
||||
public static TypedKey<ZombieNautilus.Variant> create(final Key key) {
|
||||
return TypedKey.create(RegistryKey.ZOMBIE_NAUTILUS_VARIANT, key);
|
||||
}
|
||||
}
|
||||
+3
-6
@@ -2,16 +2,15 @@ package io.papermc.paper.registry.keys.tags;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.tag.TagKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.block.banner.PatternType;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#BANNER_PATTERN}.
|
||||
* Vanilla tag keys for {@link RegistryKey#BANNER_PATTERN}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class BannerPatternTagKeys {
|
||||
/**
|
||||
* {@code #minecraft:no_item_required}
|
||||
@@ -113,7 +111,6 @@ public final class BannerPatternTagKeys {
|
||||
* @param key the tag key's key
|
||||
* @return a new tag key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TagKey<PatternType> create(final Key key) {
|
||||
return TagKey.create(RegistryKey.BANNER_PATTERN, key);
|
||||
}
|
||||
+140
-31
@@ -2,16 +2,15 @@ package io.papermc.paper.registry.keys.tags;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.tag.TagKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#BIOME}.
|
||||
* Vanilla tag keys for {@link RegistryKey#BIOME}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class BiomeTagKeys {
|
||||
/**
|
||||
* {@code #minecraft:allows_surface_slime_spawns}
|
||||
@@ -42,11 +40,130 @@ public final class BiomeTagKeys {
|
||||
public static final TagKey<Biome> ALLOWS_TROPICAL_FISH_SPAWNS_AT_ANY_HEIGHT = create(key("allows_tropical_fish_spawns_at_any_height"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:has_closer_water_fog}
|
||||
* {@code #minecraft:has_structure/abandoned_camp_bamboo_jungle}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> HAS_CLOSER_WATER_FOG = create(key("has_closer_water_fog"));
|
||||
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_BAMBOO_JUNGLE = create(key("has_structure/abandoned_camp_bamboo_jungle"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:has_structure/abandoned_camp_birch_forest}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_BIRCH_FOREST = create(key("has_structure/abandoned_camp_birch_forest"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:has_structure/abandoned_camp_cherry_grove}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_CHERRY_GROVE = create(key("has_structure/abandoned_camp_cherry_grove"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:has_structure/abandoned_camp_dappled_forest}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_DAPPLED_FOREST = create(key("has_structure/abandoned_camp_dappled_forest"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:has_structure/abandoned_camp_flower_forest}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_FLOWER_FOREST = create(key("has_structure/abandoned_camp_flower_forest"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:has_structure/abandoned_camp_forest}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_FOREST = create(key("has_structure/abandoned_camp_forest"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:has_structure/abandoned_camp_meadow}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_MEADOW = create(key("has_structure/abandoned_camp_meadow"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:has_structure/abandoned_camp_old_growth_birch_forest}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_OLD_GROWTH_BIRCH_FOREST = create(key("has_structure/abandoned_camp_old_growth_birch_forest"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:has_structure/abandoned_camp_old_growth_pine_taiga}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_OLD_GROWTH_PINE_TAIGA = create(key("has_structure/abandoned_camp_old_growth_pine_taiga"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:has_structure/abandoned_camp_old_growth_spruce_taiga}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_OLD_GROWTH_SPRUCE_TAIGA = create(key("has_structure/abandoned_camp_old_growth_spruce_taiga"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:has_structure/abandoned_camp_pale_garden}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_PALE_GARDEN = create(key("has_structure/abandoned_camp_pale_garden"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:has_structure/abandoned_camp_savanna}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_SAVANNA = create(key("has_structure/abandoned_camp_savanna"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:has_structure/abandoned_camp_snowy_taiga}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_SNOWY_TAIGA = create(key("has_structure/abandoned_camp_snowy_taiga"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:has_structure/abandoned_camp_sparse_jungle}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_SPARSE_JUNGLE = create(key("has_structure/abandoned_camp_sparse_jungle"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:has_structure/abandoned_camp_swamp}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_SWAMP = create(key("has_structure/abandoned_camp_swamp"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:has_structure/abandoned_camp_taiga}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_TAIGA = create(key("has_structure/abandoned_camp_taiga"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:has_structure/abandoned_camp_windswept_forest}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_WINDSWEPT_FOREST = create(key("has_structure/abandoned_camp_windswept_forest"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:has_structure/abandoned_camp_wooded_badlands}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_WOODED_BADLANDS = create(key("has_structure/abandoned_camp_wooded_badlands"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:has_structure/ancient_city}
|
||||
@@ -286,13 +403,6 @@ public final class BiomeTagKeys {
|
||||
*/
|
||||
public static final TagKey<Biome> HAS_STRUCTURE_WOODLAND_MANSION = create(key("has_structure/woodland_mansion"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:increased_fire_burnout}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> INCREASED_FIRE_BURNOUT = create(key("increased_fire_burnout"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:is_badlands}
|
||||
*
|
||||
@@ -405,13 +515,6 @@ public final class BiomeTagKeys {
|
||||
*/
|
||||
public static final TagKey<Biome> MORE_FREQUENT_DROWNED_SPAWNS = create(key("more_frequent_drowned_spawns"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:plays_underwater_music}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> PLAYS_UNDERWATER_MUSIC = create(key("plays_underwater_music"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:polar_bears_spawn_on_alternate_blocks}
|
||||
*
|
||||
@@ -441,11 +544,11 @@ public final class BiomeTagKeys {
|
||||
public static final TagKey<Biome> REQUIRED_OCEAN_MONUMENT_SURROUNDING = create(key("required_ocean_monument_surrounding"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:snow_golem_melts}
|
||||
* {@code #minecraft:spawns_cold_variant_farm_animals}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> SNOW_GOLEM_MELTS = create(key("snow_golem_melts"));
|
||||
public static final TagKey<Biome> SPAWNS_COLD_VARIANT_FARM_ANIMALS = create(key("spawns_cold_variant_farm_animals"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:spawns_cold_variant_frogs}
|
||||
@@ -454,6 +557,13 @@ public final class BiomeTagKeys {
|
||||
*/
|
||||
public static final TagKey<Biome> SPAWNS_COLD_VARIANT_FROGS = create(key("spawns_cold_variant_frogs"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:spawns_coral_variant_zombie_nautilus}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> SPAWNS_CORAL_VARIANT_ZOMBIE_NAUTILUS = create(key("spawns_coral_variant_zombie_nautilus"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:spawns_gold_rabbits}
|
||||
*
|
||||
@@ -468,6 +578,13 @@ public final class BiomeTagKeys {
|
||||
*/
|
||||
public static final TagKey<Biome> SPAWNS_SNOW_FOXES = create(key("spawns_snow_foxes"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:spawns_warm_variant_farm_animals}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> SPAWNS_WARM_VARIANT_FARM_ANIMALS = create(key("spawns_warm_variant_farm_animals"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:spawns_warm_variant_frogs}
|
||||
*
|
||||
@@ -496,13 +613,6 @@ public final class BiomeTagKeys {
|
||||
*/
|
||||
public static final TagKey<Biome> WATER_ON_MAP_OUTLINES = create(key("water_on_map_outlines"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:without_patrol_spawns}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Biome> WITHOUT_PATROL_SPAWNS = create(key("without_patrol_spawns"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:without_wandering_trader_spawns}
|
||||
*
|
||||
@@ -526,7 +636,6 @@ public final class BiomeTagKeys {
|
||||
* @param key the tag key's key
|
||||
* @return a new tag key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TagKey<Biome> create(final Key key) {
|
||||
return TagKey.create(RegistryKey.BIOME, key);
|
||||
}
|
||||
+843
-48
File diff suppressed because it is too large.
Load diff
+24
-6
@@ -2,16 +2,15 @@ package io.papermc.paper.registry.keys.tags;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.tag.TagKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.damage.DamageType;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#DAMAGE_TYPE}.
|
||||
* Vanilla tag keys for {@link RegistryKey#DAMAGE_TYPE}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class DamageTypeTagKeys {
|
||||
/**
|
||||
* {@code #minecraft:always_hurts_ender_dragons}
|
||||
@@ -83,6 +81,13 @@ public final class DamageTypeTagKeys {
|
||||
*/
|
||||
public static final TagKey<DamageType> BYPASSES_ARMOR = create(key("bypasses_armor"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:bypasses_cooldown}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<DamageType> BYPASSES_COOLDOWN = create(key("bypasses_cooldown"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:bypasses_effects}
|
||||
*
|
||||
@@ -230,6 +235,13 @@ public final class DamageTypeTagKeys {
|
||||
*/
|
||||
public static final TagKey<DamageType> NO_KNOCKBACK = create(key("no_knockback"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:no_wolf_retaliation}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<DamageType> NO_WOLF_RETALIATION = create(key("no_wolf_retaliation"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:panic_causes}
|
||||
*
|
||||
@@ -244,6 +256,13 @@ public final class DamageTypeTagKeys {
|
||||
*/
|
||||
public static final TagKey<DamageType> PANIC_ENVIRONMENTAL_CAUSES = create(key("panic_environmental_causes"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:sulfur_cube_with_block_immune_to}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<DamageType> SULFUR_CUBE_WITH_BLOCK_IMMUNE_TO = create(key("sulfur_cube_with_block_immune_to"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:witch_resistant_to}
|
||||
*
|
||||
@@ -267,7 +286,6 @@ public final class DamageTypeTagKeys {
|
||||
* @param key the tag key's key
|
||||
* @return a new tag key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TagKey<DamageType> create(final Key key) {
|
||||
return TagKey.create(RegistryKey.DAMAGE_TYPE, key);
|
||||
}
|
||||
+13
-16
@@ -2,16 +2,15 @@ package io.papermc.paper.registry.keys.tags;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.dialog.Dialog;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.tag.TagKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.Fluid;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#FLUID}.
|
||||
* Vanilla tag keys for {@link RegistryKey#DIALOG}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
@@ -23,35 +22,33 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
public final class FluidTagKeys {
|
||||
@GeneratedClass
|
||||
public final class DialogTagKeys {
|
||||
/**
|
||||
* {@code #minecraft:lava}
|
||||
* {@code #minecraft:pause_screen_additions}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Fluid> LAVA = create(key("lava"));
|
||||
public static final TagKey<Dialog> PAUSE_SCREEN_ADDITIONS = create(key("pause_screen_additions"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:water}
|
||||
* {@code #minecraft:quick_actions}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Fluid> WATER = create(key("water"));
|
||||
public static final TagKey<Dialog> QUICK_ACTIONS = create(key("quick_actions"));
|
||||
|
||||
private FluidTagKeys() {
|
||||
private DialogTagKeys() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a tag key for {@link Fluid} in the registry {@code minecraft:fluid}.
|
||||
* Creates a tag key for {@link Dialog} in the registry {@code minecraft:dialog}.
|
||||
*
|
||||
* @param key the tag key's key
|
||||
* @return a new tag key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TagKey<Fluid> create(final Key key) {
|
||||
return TagKey.create(RegistryKey.FLUID, key);
|
||||
public static TagKey<Dialog> create(final Key key) {
|
||||
return TagKey.create(RegistryKey.DIALOG, key);
|
||||
}
|
||||
}
|
||||
+3
-68
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys.tags;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.tag.TagKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
@@ -12,7 +12,7 @@ import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#ENCHANTMENT}.
|
||||
* Vanilla tag keys for {@link RegistryKey#ENCHANTMENT}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
@@ -24,9 +24,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class EnchantmentTagKeys {
|
||||
/**
|
||||
* {@code #minecraft:curse}
|
||||
@@ -184,15 +183,6 @@ public final class EnchantmentTagKeys {
|
||||
@MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
|
||||
public static final TagKey<Enchantment> TRADES_DESERT_COMMON = create(key("trades/desert_common"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:trades/desert_special}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
@MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
|
||||
public static final TagKey<Enchantment> TRADES_DESERT_SPECIAL = create(key("trades/desert_special"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:trades/jungle_common}
|
||||
*
|
||||
@@ -202,15 +192,6 @@ public final class EnchantmentTagKeys {
|
||||
@MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
|
||||
public static final TagKey<Enchantment> TRADES_JUNGLE_COMMON = create(key("trades/jungle_common"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:trades/jungle_special}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
@MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
|
||||
public static final TagKey<Enchantment> TRADES_JUNGLE_SPECIAL = create(key("trades/jungle_special"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:trades/plains_common}
|
||||
*
|
||||
@@ -220,15 +201,6 @@ public final class EnchantmentTagKeys {
|
||||
@MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
|
||||
public static final TagKey<Enchantment> TRADES_PLAINS_COMMON = create(key("trades/plains_common"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:trades/plains_special}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
@MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
|
||||
public static final TagKey<Enchantment> TRADES_PLAINS_SPECIAL = create(key("trades/plains_special"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:trades/savanna_common}
|
||||
*
|
||||
@@ -238,15 +210,6 @@ public final class EnchantmentTagKeys {
|
||||
@MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
|
||||
public static final TagKey<Enchantment> TRADES_SAVANNA_COMMON = create(key("trades/savanna_common"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:trades/savanna_special}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
@MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
|
||||
public static final TagKey<Enchantment> TRADES_SAVANNA_SPECIAL = create(key("trades/savanna_special"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:trades/snow_common}
|
||||
*
|
||||
@@ -256,15 +219,6 @@ public final class EnchantmentTagKeys {
|
||||
@MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
|
||||
public static final TagKey<Enchantment> TRADES_SNOW_COMMON = create(key("trades/snow_common"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:trades/snow_special}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
@MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
|
||||
public static final TagKey<Enchantment> TRADES_SNOW_SPECIAL = create(key("trades/snow_special"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:trades/swamp_common}
|
||||
*
|
||||
@@ -274,15 +228,6 @@ public final class EnchantmentTagKeys {
|
||||
@MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
|
||||
public static final TagKey<Enchantment> TRADES_SWAMP_COMMON = create(key("trades/swamp_common"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:trades/swamp_special}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
@MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
|
||||
public static final TagKey<Enchantment> TRADES_SWAMP_SPECIAL = create(key("trades/swamp_special"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:trades/taiga_common}
|
||||
*
|
||||
@@ -292,15 +237,6 @@ public final class EnchantmentTagKeys {
|
||||
@MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
|
||||
public static final TagKey<Enchantment> TRADES_TAIGA_COMMON = create(key("trades/taiga_common"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:trades/taiga_special}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
@MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
|
||||
public static final TagKey<Enchantment> TRADES_TAIGA_SPECIAL = create(key("trades/taiga_special"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:treasure}
|
||||
*
|
||||
@@ -317,7 +253,6 @@ public final class EnchantmentTagKeys {
|
||||
* @param key the tag key's key
|
||||
* @return a new tag key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TagKey<Enchantment> create(final Key key) {
|
||||
return TagKey.create(RegistryKey.ENCHANTMENT, key);
|
||||
}
|
||||
+101
-6
@@ -2,16 +2,15 @@ package io.papermc.paper.registry.keys.tags;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.tag.TagKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#ENTITY_TYPE}.
|
||||
* Vanilla tag keys for {@link RegistryKey#ENTITY_TYPE}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
@@ -23,10 +22,16 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class EntityTypeTagKeys {
|
||||
/**
|
||||
* {@code #minecraft:accepts_iron_golem_gift}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<EntityType> ACCEPTS_IRON_GOLEM_GIFT = create(key("accepts_iron_golem_gift"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:aquatic}
|
||||
*
|
||||
@@ -76,6 +81,13 @@ public final class EntityTypeTagKeys {
|
||||
*/
|
||||
public static final TagKey<EntityType> BOAT = create(key("boat"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:burn_in_daylight}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<EntityType> BURN_IN_DAYLIGHT = create(key("burn_in_daylight"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:can_breathe_under_water}
|
||||
*
|
||||
@@ -83,6 +95,27 @@ public final class EntityTypeTagKeys {
|
||||
*/
|
||||
public static final TagKey<EntityType> CAN_BREATHE_UNDER_WATER = create(key("can_breathe_under_water"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:can_equip_harness}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<EntityType> CAN_EQUIP_HARNESS = create(key("can_equip_harness"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:can_equip_saddle}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<EntityType> CAN_EQUIP_SADDLE = create(key("can_equip_saddle"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:can_float_while_ridden}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<EntityType> CAN_FLOAT_WHILE_RIDDEN = create(key("can_float_while_ridden"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:can_turn_in_boats}
|
||||
*
|
||||
@@ -90,6 +123,48 @@ public final class EntityTypeTagKeys {
|
||||
*/
|
||||
public static final TagKey<EntityType> CAN_TURN_IN_BOATS = create(key("can_turn_in_boats"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:can_wear_horse_armor}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<EntityType> CAN_WEAR_HORSE_ARMOR = create(key("can_wear_horse_armor"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:can_wear_nautilus_armor}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<EntityType> CAN_WEAR_NAUTILUS_ARMOR = create(key("can_wear_nautilus_armor"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:candidate_for_iron_golem_gift}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<EntityType> CANDIDATE_FOR_IRON_GOLEM_GIFT = create(key("candidate_for_iron_golem_gift"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:cannot_be_age_locked}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<EntityType> CANNOT_BE_AGE_LOCKED = create(key("cannot_be_age_locked"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:cannot_be_dismounted_by_item_usage}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<EntityType> CANNOT_BE_DISMOUNTED_BY_ITEM_USAGE = create(key("cannot_be_dismounted_by_item_usage"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:cannot_be_pushed_onto_boats}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<EntityType> CANNOT_BE_PUSHED_ONTO_BOATS = create(key("cannot_be_pushed_onto_boats"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:deflects_projectiles}
|
||||
*
|
||||
@@ -111,6 +186,13 @@ public final class EntityTypeTagKeys {
|
||||
*/
|
||||
public static final TagKey<EntityType> FALL_DAMAGE_IMMUNE = create(key("fall_damage_immune"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:followable_friendly_mobs}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<EntityType> FOLLOWABLE_FRIENDLY_MOBS = create(key("followable_friendly_mobs"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:freeze_hurts_extra_types}
|
||||
*
|
||||
@@ -181,6 +263,13 @@ public final class EntityTypeTagKeys {
|
||||
*/
|
||||
public static final TagKey<EntityType> INVERTED_HEALING_AND_HARM = create(key("inverted_healing_and_harm"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:nautilus_hostiles}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<EntityType> NAUTILUS_HOSTILES = create(key("nautilus_hostiles"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:no_anger_from_wind_charge}
|
||||
*
|
||||
@@ -195,6 +284,13 @@ public final class EntityTypeTagKeys {
|
||||
*/
|
||||
public static final TagKey<EntityType> NON_CONTROLLING_RIDER = create(key("non_controlling_rider"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:not_affected_by_geysers}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<EntityType> NOT_AFFECTED_BY_GEYSERS = create(key("not_affected_by_geysers"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:not_scary_for_pufferfish}
|
||||
*
|
||||
@@ -281,7 +377,6 @@ public final class EntityTypeTagKeys {
|
||||
* @param key the tag key's key
|
||||
* @return a new tag key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TagKey<EntityType> create(final Key key) {
|
||||
return TagKey.create(RegistryKey.ENTITY_TYPE, key);
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package io.papermc.paper.registry.keys.tags;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.tag.TagKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.Fluid;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla tag keys for {@link RegistryKey#FLUID}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
* changed (including removals) on any Minecraft version
|
||||
* bump, so cross-version compatibility is not provided on the
|
||||
* same level as it is on most of the other API.
|
||||
*/
|
||||
@SuppressWarnings({
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@NullMarked
|
||||
@GeneratedClass
|
||||
public final class FluidTagKeys {
|
||||
/**
|
||||
* {@code #minecraft:axolotl_tries_to_find}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Fluid> AXOLOTL_TRIES_TO_FIND = create(key("axolotl_tries_to_find"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:bubble_column_can_occupy}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Fluid> BUBBLE_COLUMN_CAN_OCCUPY = create(key("bubble_column_can_occupy"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:dolphin_tries_to_find}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Fluid> DOLPHIN_TRIES_TO_FIND = create(key("dolphin_tries_to_find"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:entity_floatable}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Fluid> ENTITY_FLOATABLE = create(key("entity_floatable"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:frog_tries_to_find_land_near}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Fluid> FROG_TRIES_TO_FIND_LAND_NEAR = create(key("frog_tries_to_find_land_near"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:lava}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Fluid> LAVA = create(key("lava"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:supports_frogspawn}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Fluid> SUPPORTS_FROGSPAWN = create(key("supports_frogspawn"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:supports_lily_pad}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Fluid> SUPPORTS_LILY_PAD = create(key("supports_lily_pad"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:supports_sugar_cane_adjacently}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Fluid> SUPPORTS_SUGAR_CANE_ADJACENTLY = create(key("supports_sugar_cane_adjacently"));
|
||||
|
||||
/**
|
||||
* {@code #minecraft:water}
|
||||
*
|
||||
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
|
||||
*/
|
||||
public static final TagKey<Fluid> WATER = create(key("water"));
|
||||
|
||||
private FluidTagKeys() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a tag key for {@link Fluid} in the registry {@code minecraft:fluid}.
|
||||
*
|
||||
* @param key the tag key's key
|
||||
* @return a new tag key
|
||||
*/
|
||||
public static TagKey<Fluid> create(final Key key) {
|
||||
return TagKey.create(RegistryKey.FLUID, key);
|
||||
}
|
||||
}
|
||||
+3
-6
@@ -2,16 +2,15 @@ package io.papermc.paper.registry.keys.tags;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.tag.TagKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.GameEvent;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#GAME_EVENT}.
|
||||
* Vanilla tag keys for {@link RegistryKey#GAME_EVENT}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class GameEventTagKeys {
|
||||
/**
|
||||
* {@code #minecraft:allay_can_listen}
|
||||
@@ -71,7 +69,6 @@ public final class GameEventTagKeys {
|
||||
* @param key the tag key's key
|
||||
* @return a new tag key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TagKey<GameEvent> create(final Key key) {
|
||||
return TagKey.create(RegistryKey.GAME_EVENT, key);
|
||||
}
|
||||
+3
-6
@@ -2,16 +2,15 @@ package io.papermc.paper.registry.keys.tags;
|
||||
|
||||
import static net.kyori.adventure.key.Key.key;
|
||||
|
||||
import io.papermc.paper.generated.GeneratedFrom;
|
||||
import io.papermc.paper.annotation.GeneratedClass;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.registry.tag.TagKey;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import org.bukkit.MusicInstrument;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Vanilla keys for {@link RegistryKey#INSTRUMENT}.
|
||||
* Vanilla tag keys for {@link RegistryKey#INSTRUMENT}.
|
||||
*
|
||||
* @apiNote The fields provided here are a direct representation of
|
||||
* what is available from the vanilla game source. They may be
|
||||
@@ -23,9 +22,8 @@ import org.jspecify.annotations.NullMarked;
|
||||
"unused",
|
||||
"SpellCheckingInspection"
|
||||
})
|
||||
@GeneratedFrom("1.21.4")
|
||||
@NullMarked
|
||||
@ApiStatus.Experimental
|
||||
@GeneratedClass
|
||||
public final class InstrumentTagKeys {
|
||||
/**
|
||||
* {@code #minecraft:goat_horns}
|
||||
@@ -57,7 +55,6 @@ public final class InstrumentTagKeys {
|
||||
* @param key the tag key's key
|
||||
* @return a new tag key
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public static TagKey<MusicInstrument> create(final Key key) {
|
||||
return TagKey.create(RegistryKey.INSTRUMENT, key);
|
||||
}
|
||||
Loaded 100 of 3965 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user