Compare commits
871
Commits
1.2.8
...
v1.8-pre-14
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dc1d3dd3fc | ||
|
|
15fcc9f11a | ||
|
|
ca7b5758b7 | ||
|
|
c4376d582f | ||
|
|
b3e7ef2792 | ||
|
|
542864cac1 | ||
|
|
6169947284 | ||
|
|
bdff7436a5 | ||
|
|
a8f8bbaa53 | ||
|
|
80034ed4b8 | ||
|
|
caa8cfb40b | ||
|
|
41d45a562e | ||
|
|
0d284e674a | ||
|
|
677d30ef55 | ||
|
|
76d60f0d7a | ||
|
|
b93950074d | ||
|
|
319737a20a | ||
|
|
1e0090e82a | ||
|
|
2a4c08bb3f | ||
|
|
0e72a1e944 | ||
|
|
d998f388f7 | ||
|
|
6ff830f245 | ||
|
|
f44a5b3599 | ||
|
|
8ae21853c9 | ||
|
|
bd5e8b8ed5 | ||
|
|
a0dc82aba4 | ||
|
|
bb0f70cb44 | ||
|
|
e680d2b8f7 | ||
|
|
9dacbe2f36 | ||
|
|
74dde71db1 | ||
|
|
f1bc3d6f4a | ||
|
|
0fa893f949 | ||
|
|
2699a1e8f9 | ||
|
|
78b2eb07f5 | ||
|
|
49c1287664 | ||
|
|
83b3a10069 | ||
|
|
8aed1fda53 | ||
|
|
5f40eec0d3 | ||
|
|
104b894f50 | ||
|
|
bcba33a7cb | ||
|
|
4275c39d8a | ||
|
|
ae3adefd82 | ||
|
|
6e28602b73 | ||
|
|
584d3edb13 | ||
|
|
978ce4629a | ||
|
|
33cfa93f84 | ||
|
|
d5a29365b4 | ||
|
|
e12870b542 | ||
|
|
75301b188a | ||
|
|
be91a955dc | ||
|
|
8eb6ae03eb | ||
|
|
7bf4c081b3 | ||
|
|
55b6f2cbce | ||
|
|
e97dcf2ae3 | ||
|
|
ddcb92d04c | ||
|
|
4413aca711 | ||
|
|
c4307fa777 | ||
|
|
f4ada314ba | ||
|
|
dbbc40879a | ||
|
|
8d3f86722c | ||
|
|
09466af902 | ||
|
|
851d19f57d | ||
|
|
a4ede8dfcf | ||
|
|
1c48790a03 | ||
|
|
26bc3274fe | ||
|
|
805e2ad335 | ||
|
|
8b6c6d7b35 | ||
|
|
7bec3ae062 | ||
|
|
defddefb48 | ||
|
|
5201b18fe7 | ||
|
|
c449e8ced1 | ||
|
|
f22d593173 | ||
|
|
5a3ce13d93 | ||
|
|
ecd0d63dc2 | ||
|
|
066791b283 | ||
|
|
f05bf26293 | ||
|
|
75391bebde | ||
|
|
d413f9e41b | ||
|
|
efdc66739f | ||
|
|
adf652978f | ||
|
|
29e8e9020d | ||
|
|
64da1a54fa | ||
|
|
37740d072f | ||
|
|
6496f1402a | ||
|
|
e661ee75d7 | ||
|
|
dbd9df8c71 | ||
|
|
bb8027bcaf | ||
|
|
c7096d8b35 | ||
|
|
36b80763e3 | ||
|
|
bc861089b0 | ||
|
|
e5a43a8826 | ||
|
|
1e1b609eb7 | ||
|
|
957c8876cc | ||
|
|
2902ef8ba4 | ||
|
|
de07adb46a | ||
|
|
f3dbb6dd4c | ||
|
|
b954e68f29 | ||
|
|
8e09c54143 | ||
|
|
5e88678c52 | ||
|
|
60ad9f476d | ||
|
|
5b4579c67c | ||
|
|
d502de76dd | ||
|
|
eb5e21eb1b | ||
|
|
d747974950 | ||
|
|
ef8fe9161f | ||
|
|
50ede8bf24 | ||
|
|
81f90a955c | ||
|
|
0252dbf1b8 | ||
|
|
cd230ca35d | ||
|
|
4852e4bfca | ||
|
|
0ed112b6fc | ||
|
|
3db6390efb | ||
|
|
57aa65cb76 | ||
|
|
746be8a0cf | ||
|
|
0ea484bdb1 | ||
|
|
072dbfbbb4 | ||
|
|
58faab9f54 | ||
|
|
16d9a0c6a6 | ||
|
|
c2f55aa048 | ||
|
|
bcb8d0e785 | ||
|
|
a881496e2b | ||
|
|
e4913cb841 | ||
|
|
781278a2c5 | ||
|
|
f1bbcd61ed | ||
|
|
42bdc1f1ca | ||
|
|
f826363d01 | ||
|
|
0710f214c5 | ||
|
|
3c4298dcea | ||
|
|
0aeff7cab8 | ||
|
|
be340a9812 | ||
|
|
7122f1194c | ||
|
|
e8df865b3c | ||
|
|
9e38883dcd | ||
|
|
1d955cac6e | ||
|
|
106b7c6d75 | ||
|
|
e70609bbc2 | ||
|
|
e1e0735688 | ||
|
|
51a417cebd | ||
|
|
c98c4e7d38 | ||
|
|
042b55af62 | ||
|
|
ab8885eb6e | ||
|
|
069980d567 | ||
|
|
e6e3835846 | ||
|
|
bdb83dfd86 | ||
|
|
628730d484 | ||
|
|
7aefa35623 | ||
|
|
8964a0ac5d | ||
|
|
128ff6c60b | ||
|
|
1bc2bbc905 | ||
|
|
3f9977fd1c | ||
|
|
6f5bc43179 | ||
|
|
89cba54262 | ||
|
|
081c2fece1 | ||
|
|
0b9f646650 | ||
|
|
07ca8ac282 | ||
|
|
cb798d6fd0 | ||
|
|
5b06f2005c | ||
|
|
c07960814c | ||
|
|
a1b75243f3 | ||
|
|
9f9ca79f90 | ||
|
|
241f5ed707 | ||
|
|
276653975d | ||
|
|
ff985e4eee | ||
|
|
65c28b4c90 | ||
|
|
e994c34689 | ||
|
|
0eed580e72 | ||
|
|
88ccbdbbe7 | ||
|
|
4604981e7d | ||
|
|
bf990c0a20 | ||
|
|
cfebc47853 | ||
|
|
4a72e70506 | ||
|
|
edc07a38ae | ||
|
|
a4daa60a7f | ||
|
|
e3f7b6888c | ||
|
|
62bb1a501b | ||
|
|
92fab840c5 | ||
|
|
515a4a4f8c | ||
|
|
7518b9335e | ||
|
|
6221ff0b8b | ||
|
|
bacc1cd878 | ||
|
|
5144bd6199 | ||
|
|
a80770b8f7 | ||
|
|
1caca9fd96 | ||
|
|
59aa347e4e | ||
|
|
a22ce57287 | ||
|
|
bac63c57e7 | ||
|
|
78171c583d | ||
|
|
3821c6e98a | ||
|
|
e0c71e7c86 | ||
|
|
d9d054c0cd | ||
|
|
82304e4f45 | ||
|
|
cbc510f5a4 | ||
|
|
58040a338b | ||
|
|
9e5cba423d | ||
|
|
19cdd85b65 | ||
|
|
a6872ffc3c | ||
|
|
92ad799276 | ||
|
|
28770edcdd | ||
|
|
0f5180ad07 | ||
|
|
b2c126ecf9 | ||
|
|
aab7266bcb | ||
|
|
dc5eab1980 | ||
|
|
ddfc803603 | ||
|
|
5de43429a3 | ||
|
|
513421f3d0 | ||
|
|
04ca446d44 | ||
|
|
d8cfd826c0 | ||
|
|
30689a74bd | ||
|
|
957adbb3a2 | ||
|
|
e59ff04f2b | ||
|
|
3511099f78 | ||
|
|
7dc6f89585 | ||
|
|
e899b0cebb | ||
|
|
40ba25d011 | ||
|
|
43e5e0200a | ||
|
|
7906ac7fa9 | ||
|
|
706f5331b6 | ||
|
|
3e13ea6aaa | ||
|
|
fb13834048 | ||
|
|
3e8bd7f649 | ||
|
|
dfc898e0bf | ||
|
|
38fc0cf4be | ||
|
|
7204b85664 | ||
|
|
c0642a69a1 | ||
|
|
251e01f6e7 | ||
|
|
612a7b50cf | ||
|
|
c4d04d10d7 | ||
|
|
e87bfe0ef9 | ||
|
|
6d87a03412 | ||
|
|
13bea01eac | ||
|
|
9a8126cc1e | ||
|
|
45f705e351 | ||
|
|
1c3577a5e7 | ||
|
|
a2aedf680a | ||
|
|
14cfb6b8c5 | ||
|
|
5e98e8a192 | ||
|
|
bb65610e74 | ||
|
|
19ccfb87e3 | ||
|
|
514298b942 | ||
|
|
267480b563 | ||
|
|
a50a5f8f89 | ||
|
|
f06cd69b27 | ||
|
|
c0bf7f7069 | ||
|
|
d884c5324d | ||
|
|
16caeeee89 | ||
|
|
17e5d84907 | ||
|
|
fe4037b850 | ||
|
|
564f65d2d2 | ||
|
|
2a944d9376 | ||
|
|
3dc1bbc671 | ||
|
|
1a141b114e | ||
|
|
f9e7589d87 | ||
|
|
f77ab58b3b | ||
|
|
a3e744d883 | ||
|
|
8680f0f43b | ||
|
|
a981caa386 | ||
|
|
06644f5fe6 | ||
|
|
bcb79a0ac5 | ||
|
|
b6c48d95db | ||
|
|
f28092bccb | ||
|
|
a566b6f8cb | ||
|
|
ba7e178cb1 | ||
|
|
b88ac0191e | ||
|
|
f864eeb646 | ||
|
|
cc2f810be3 | ||
|
|
d41da16c56 | ||
|
|
9d3390b1bb | ||
|
|
3fe96333e1 | ||
|
|
a17c782c2e | ||
|
|
2f9a2ce435 | ||
|
|
d78776be6f | ||
|
|
e23d1a87f6 | ||
|
|
b27f86c073 | ||
|
|
2a5f5448a4 | ||
|
|
c84472270e | ||
|
|
e3b667d5b2 | ||
|
|
7079c50deb | ||
|
|
b3e07b9188 | ||
|
|
41427d8698 | ||
|
|
6e2177e27c | ||
|
|
25bba6e306 | ||
|
|
64c0c79edd | ||
|
|
9f6e79cb16 | ||
|
|
917959743e | ||
|
|
577660b58c | ||
|
|
4377d85a05 | ||
|
|
fb8fcf7d50 | ||
|
|
faf8e4664c | ||
|
|
7e52b8e979 | ||
|
|
55ab2fa043 | ||
|
|
560a1b5e2f | ||
|
|
db61b202c0 | ||
|
|
ebc697dd89 | ||
|
|
784d99c03d | ||
|
|
d48ab480c9 | ||
|
|
052f1108c3 | ||
|
|
b42f5b68ca | ||
|
|
3926c48114 | ||
|
|
0a5f2d2b8e | ||
|
|
57f80b5196 | ||
|
|
7ac3b7e65b | ||
|
|
4ce2f88d4a | ||
|
|
374025f5bf | ||
|
|
450da1ce3f | ||
|
|
4a5cfd141a | ||
|
|
56ea329b5c | ||
|
|
3104cda55e | ||
|
|
111b28ba7e | ||
|
|
7754a6e183 | ||
|
|
2d2063cac2 | ||
|
|
494edfa095 | ||
|
|
e3a9d4e6de | ||
|
|
c8f766735a | ||
|
|
83899c8fac | ||
|
|
99d56a520e | ||
|
|
c1b2caad8b | ||
|
|
53cd0feba3 | ||
|
|
e83945d875 | ||
|
|
31def9a711 | ||
|
|
b4514dca63 | ||
|
|
add5f9853d | ||
|
|
419c08780f | ||
|
|
d39b50b02c | ||
|
|
2d8b2ae523 | ||
|
|
3e5366f374 | ||
|
|
2b10325f7f | ||
|
|
4c5fdf6dce | ||
|
|
8a8616c124 | ||
|
|
8095e506e4 | ||
|
|
e067208755 | ||
|
|
f9bf042178 | ||
|
|
23db4a6506 | ||
|
|
2e0468ed74 | ||
|
|
e932fb5707 | ||
|
|
337551119b | ||
|
|
7ec7336b9a | ||
|
|
a136729532 | ||
|
|
2da41d03ef | ||
|
|
3c65754fca | ||
|
|
688931aa7e | ||
|
|
e5338caa29 | ||
|
|
b45bc73396 | ||
|
|
918d5b89ef | ||
|
|
9f06d583ab | ||
|
|
1c87cf7982 | ||
|
|
75f7eaf74f | ||
|
|
a4f4163412 | ||
|
|
ef529b7949 | ||
|
|
6e52acb677 | ||
|
|
826695a677 | ||
|
|
e403469e52 | ||
|
|
084acb8894 | ||
|
|
948e260460 | ||
|
|
f4efdea4b2 | ||
|
|
1cb7730c3c | ||
|
|
5b558b50e2 | ||
|
|
00986f2341 | ||
|
|
b83e8887ff | ||
|
|
7bfadfa233 | ||
|
|
a3f75f1237 | ||
|
|
1e21d3f6ea | ||
|
|
73d0c6ea7d | ||
|
|
278b27da6b | ||
|
|
fbb0692f80 | ||
|
|
f4307ab524 | ||
|
|
cafda14c89 | ||
|
|
2e7e81be9f | ||
|
|
83b5697d40 | ||
|
|
e0a1c39e54 | ||
|
|
6608203ddc | ||
|
|
1f811ba90e | ||
|
|
70f33f56e8 | ||
|
|
39c2a157c4 | ||
|
|
761352cbbc | ||
|
|
44016e1a03 | ||
|
|
a2233c434a | ||
|
|
fb4863cbe9 | ||
|
|
e60d50a957 | ||
|
|
c53d69d03c | ||
|
|
9e294d7185 | ||
|
|
e9cd983131 | ||
|
|
e6798d4901 | ||
|
|
1c0e8cdd91 | ||
|
|
a3f9fc9cb3 | ||
|
|
808bbabff1 | ||
|
|
4a5e579256 | ||
|
|
7c74d22700 | ||
|
|
cf11930f05 | ||
|
|
f814d20cbb | ||
|
|
6313fca6fa | ||
|
|
f0bcfc62c8 | ||
|
|
cf930c6013 | ||
|
|
052a65f6ef | ||
|
|
4078418376 | ||
|
|
68e8d4f788 | ||
|
|
be6e0ce222 | ||
|
|
67dd097a0f | ||
|
|
ed9007da44 | ||
|
|
81632cdf6d | ||
|
|
727e02a235 | ||
|
|
39e105c69c | ||
|
|
1a2145b413 | ||
|
|
05a981de6e | ||
|
|
79c07642a2 | ||
|
|
e2352fe3bf | ||
|
|
2d9ac56f2e | ||
|
|
8e1d70b6be | ||
|
|
7c6a675173 | ||
|
|
feeff01654 | ||
|
|
0e53005867 | ||
|
|
98b4ee2bac | ||
|
|
efc2dc1c54 | ||
|
|
827c974908 | ||
|
|
05b9c8efca | ||
|
|
42a9745196 | ||
|
|
5a283b7ffa | ||
|
|
59d25df76b | ||
|
|
c42a00ddcf | ||
|
|
b3e06caf7c | ||
|
|
a0b84c0552 | ||
|
|
e8be5eb8ba | ||
|
|
2531988a59 | ||
|
|
7204b06870 | ||
|
|
6289543ea5 | ||
|
|
6a1ce5e234 | ||
|
|
bd1e4e7e6d | ||
|
|
feda5b96b6 | ||
|
|
809396ff21 | ||
|
|
2428487eb1 | ||
|
|
df0c769111 | ||
|
|
5e0cd75bb0 | ||
|
|
b21e6b4a67 | ||
|
|
bfc3aa7ad8 | ||
|
|
72458ddfd2 | ||
|
|
a8a04b137b | ||
|
|
4e11df1fc7 | ||
|
|
c3ab35bd6b | ||
|
|
af1025da1f | ||
|
|
f2ce9eacb1 | ||
|
|
27307e034b | ||
|
|
808357735f | ||
|
|
ece8b6d395 | ||
|
|
8643e14900 | ||
|
|
cbfd52d926 | ||
|
|
e266e43d19 | ||
|
|
c9d58e08c9 | ||
|
|
24eda2b3a5 | ||
|
|
38c4f3234d | ||
|
|
e94b6f24dc | ||
|
|
85dab8eb7a | ||
|
|
5fb8634880 | ||
|
|
e551421867 | ||
|
|
3dfb1ce0b5 | ||
|
|
aca321c332 | ||
|
|
e0f4891a72 | ||
|
|
08b207d80a | ||
|
|
6121349a6f | ||
|
|
2b58a9ad97 | ||
|
|
8e922a7676 | ||
|
|
7967b6851f | ||
|
|
18b37abf5b | ||
|
|
53b713f574 | ||
|
|
655f162272 | ||
|
|
686c50a7bb | ||
|
|
a88e95e116 | ||
|
|
7c583bf8ec | ||
|
|
c3911483a5 | ||
|
|
f37d7f4040 | ||
|
|
c39c9691a8 | ||
|
|
a1c591a616 | ||
|
|
999e21bf77 | ||
|
|
c8e5a37472 | ||
|
|
c6fffca506 | ||
|
|
f1206a1fc6 | ||
|
|
29a4280b50 | ||
|
|
552f63a27f | ||
|
|
612608181d | ||
|
|
8e652f0c44 | ||
|
|
4a3e89d713 | ||
|
|
3dd6d1e0b9 | ||
|
|
f42e1ad71d | ||
|
|
b44f36185a | ||
|
|
1621adad02 | ||
|
|
d2682242ae | ||
|
|
0b26fe3266 | ||
|
|
0354ddf765 | ||
|
|
82e0d01c29 | ||
|
|
57b68f185c | ||
|
|
8f9b8c0433 | ||
|
|
27ced0fc36 | ||
|
|
1d383a7d37 | ||
|
|
ae81019fd8 | ||
|
|
d05019adac | ||
|
|
1d45ec916c | ||
|
|
7328fc9381 | ||
|
|
89f21b927f | ||
|
|
04c33929cd | ||
|
|
fa2aab5e74 | ||
|
|
ebc81c0986 | ||
|
|
c6348e0dc9 | ||
|
|
f84d3000f4 | ||
|
|
7ddfc681cc | ||
|
|
cdb67c80c0 | ||
|
|
ed78c9d746 | ||
|
|
b7128d5f33 | ||
|
|
ba0b32ffdb | ||
|
|
3b420a4c28 | ||
|
|
5abc9c7154 | ||
|
|
c5f377476c | ||
|
|
105ea434da | ||
|
|
f0196bdab9 | ||
|
|
982d1ee9a0 | ||
|
|
a7bbb20f60 | ||
|
|
2ca79017e2 | ||
|
|
c4a3d26d96 | ||
|
|
93292fb2f2 | ||
|
|
3a9be091ea | ||
|
|
92f3944049 | ||
|
|
27f90655f1 | ||
|
|
4b868392e6 | ||
|
|
ebb1ba990d | ||
|
|
b4bb72e236 | ||
|
|
e876ebe078 | ||
|
|
d6af873b9d | ||
|
|
c10d309180 | ||
|
|
c33ab2c52c | ||
|
|
ec6cef3526 | ||
|
|
c61738bbab | ||
|
|
00990a49f9 | ||
|
|
72a199ce48 | ||
|
|
ac585f7c81 | ||
|
|
a8b286c6fc | ||
|
|
364747986b | ||
|
|
b51c3ad20a | ||
|
|
df8c77291d | ||
|
|
9dde0e54fe | ||
|
|
72f1b2bf02 | ||
|
|
332782e99c | ||
|
|
9f7e49b453 | ||
|
|
e17f53ca3c | ||
|
|
5fc1abaff2 | ||
|
|
a9ad25d3fc | ||
|
|
bf3c0cda46 | ||
|
|
e9680c287d | ||
|
|
e05dda9ea6 | ||
|
|
7db442682e | ||
|
|
61911ac09a | ||
|
|
381dc28831 | ||
|
|
1686d38f0b | ||
|
|
509b93968d | ||
|
|
1458331e3f | ||
|
|
d5777a55f0 | ||
|
|
d7c4d2c425 | ||
|
|
a268687cea | ||
|
|
d679e43058 | ||
|
|
1f609f8732 | ||
|
|
30e9d38bf2 | ||
|
|
922342345d | ||
|
|
80c8c5453b | ||
|
|
ba72ec37c6 | ||
|
|
9bfb696c9d | ||
|
|
4a9848f51d | ||
|
|
383eacc814 | ||
|
|
860b80e2c2 | ||
|
|
0259bc8d9d | ||
|
|
37238e1226 | ||
|
|
c51880941b | ||
|
|
451bbe7597 | ||
|
|
d99e20d95e | ||
|
|
5eca22a9df | ||
|
|
c4d6b26986 | ||
|
|
197acc4d2f | ||
|
|
da5a5cf15a | ||
|
|
0797df24d2 | ||
|
|
7fca4ac8d6 | ||
|
|
0516513c67 | ||
|
|
4603794436 | ||
|
|
a5bbe4047b | ||
|
|
770a2d3287 | ||
|
|
3bd4b82d94 | ||
|
|
218b2d7782 | ||
|
|
76a08e6c12 | ||
|
|
4d28a58dcb | ||
|
|
9347e7a133 | ||
|
|
33ed5ff904 | ||
|
|
291994d388 | ||
|
|
f6ea9675bf | ||
|
|
cc303f56a4 | ||
|
|
290bd0a8fe | ||
|
|
a8573cc8e1 | ||
|
|
814bd941c0 | ||
|
|
d3f6d32848 | ||
|
|
5e1b82ea8a | ||
|
|
e49cae5d67 | ||
|
|
8168bb2085 | ||
|
|
621a7c98b9 | ||
|
|
28da2aafc4 | ||
|
|
e89e6fac28 | ||
|
|
a5e067af9e | ||
|
|
04de7fd5ea | ||
|
|
815428f35b | ||
|
|
833f569150 | ||
|
|
6b227d55aa | ||
|
|
57a6c26c07 | ||
|
|
b2da168f6a | ||
|
|
4c1e14af57 | ||
|
|
5f9e82617f | ||
|
|
9868facdde | ||
|
|
d45f8bddac | ||
|
|
e4b086e7e5 | ||
|
|
7afe3c63cd | ||
|
|
5103acf414 | ||
|
|
70b763b5a3 | ||
|
|
e1370b803f | ||
|
|
ac3ca0ddf7 | ||
|
|
15bec5525a | ||
|
|
0e8dcb6a40 | ||
|
|
836efcfa03 | ||
|
|
774e6decf3 | ||
|
|
839265e0b9 | ||
|
|
32c94c85f1 | ||
|
|
a36df67f6f | ||
|
|
cdb46f476c | ||
|
|
96e5e7393e | ||
|
|
130001a44c | ||
|
|
1328ea81e8 | ||
|
|
a42153cff9 | ||
|
|
79929f5700 | ||
|
|
8c3726c165 | ||
|
|
51a58f79a5 | ||
|
|
8691304925 | ||
|
|
9fef95d96e | ||
|
|
4d42a23510 | ||
|
|
787df36fe0 | ||
|
|
a59ea40e12 | ||
|
|
fdb3a23acc | ||
|
|
60d24ac3c1 | ||
|
|
7634540bd7 | ||
|
|
0a475e4242 | ||
|
|
ff3b66b22e | ||
|
|
8be5f5bfa6 | ||
|
|
8d887335e2 | ||
|
|
553f429a53 | ||
|
|
a4a8b36665 | ||
|
|
49d46b79df | ||
|
|
08a2b92bcf | ||
|
|
f32dafc3ee | ||
|
|
84e391ffc8 | ||
|
|
26a369af89 | ||
|
|
56c752b487 | ||
|
|
890fcadac2 | ||
|
|
27f09f6627 | ||
|
|
e5b89271ee | ||
|
|
48ef0e7852 | ||
|
|
192851b03f | ||
|
|
dd30876e70 | ||
|
|
ce2603549b | ||
|
|
c645124e55 | ||
|
|
3c3a00b7bb | ||
|
|
d34e152b98 | ||
|
|
d5454b918a | ||
|
|
427a0fff4a | ||
|
|
7fc446321d | ||
|
|
3f85f4998b | ||
|
|
4799fb67c4 | ||
|
|
5ed9038f7b | ||
|
|
8c1cd4b824 | ||
|
|
50a09de212 | ||
|
|
e66710f5ed | ||
|
|
33131f4fcd | ||
|
|
9834787279 | ||
|
|
227b569138 | ||
|
|
ad1a8a3dba | ||
|
|
262c470031 | ||
|
|
4c9b9be23f | ||
|
|
d1c04d39d2 | ||
|
|
afbe7b44b6 | ||
|
|
f76f1687fb | ||
|
|
8eb4015cab | ||
|
|
3ec44f72da | ||
|
|
3797c45d98 | ||
|
|
94b7523774 | ||
|
|
6f0de9f01c | ||
|
|
16cc63447f | ||
|
|
bb6661b4eb | ||
|
|
63a5005257 | ||
|
|
8b4fdd4773 | ||
|
|
333bea795f | ||
|
|
3ee972a4ff | ||
|
|
94a1f67975 | ||
|
|
e00b55842d | ||
|
|
ba1a4afa79 | ||
|
|
d2925592fc | ||
|
|
d97c1a03ee | ||
|
|
a1d48d3b20 | ||
|
|
4ce0463465 | ||
|
|
6725caad36 | ||
|
|
17e9d667a8 | ||
|
|
92d85822f3 | ||
|
|
bdeb421ca3 | ||
|
|
b5a5aa4748 | ||
|
|
096d8ab807 | ||
|
|
da7d2c7929 | ||
|
|
ead6156bfa | ||
|
|
4220b2d7b3 | ||
|
|
e7c598d29e | ||
|
|
1677383049 | ||
|
|
23ec389798 | ||
|
|
0ceaf9a3b2 | ||
|
|
5fbb775ab4 | ||
|
|
8914842e71 | ||
|
|
3e912f5282 | ||
|
|
360562e80e | ||
|
|
8ffc8836d6 | ||
|
|
2f629ac77f | ||
|
|
f1ead98a46 | ||
|
|
c3747cfebd | ||
|
|
21d6970b0d | ||
|
|
d9072d54d0 | ||
|
|
a963980f9d | ||
|
|
45f8ce1a44 | ||
|
|
eb981ef06a | ||
|
|
56030945e9 | ||
|
|
d4e52967ca | ||
|
|
4b3a998ae2 | ||
|
|
b0dd3dae9b | ||
|
|
372a802c98 | ||
|
|
16f2f29bf2 | ||
|
|
e0aba994b6 | ||
|
|
6aea77cdbc | ||
|
|
07d96cd486 | ||
|
|
9b21a4d07a | ||
|
|
dea483d362 | ||
|
|
636e246c70 | ||
|
|
0d5c7b5250 | ||
|
|
1b5f066eb0 | ||
|
|
ffe224c4bf | ||
|
|
792fe16124 | ||
|
|
3c92108c44 | ||
|
|
3b71327245 | ||
|
|
6d70978285 | ||
|
|
953ad680ee | ||
|
|
765f2fad92 | ||
|
|
bede734af7 | ||
|
|
31853376d6 | ||
|
|
3a100ce325 | ||
|
|
bbb2ef0668 | ||
|
|
9f697673c0 | ||
|
|
b1deb8629b | ||
|
|
70d0400c67 | ||
|
|
b0c08ce813 | ||
|
|
3af91fcac9 | ||
|
|
d1c2fe4169 | ||
|
|
1900d37c94 | ||
|
|
5d17a2a613 | ||
|
|
4a93603614 | ||
|
|
9a1a59f15f | ||
|
|
0c350a3f27 | ||
|
|
c3d75f1e8d | ||
|
|
b847e53221 | ||
|
|
c9570b0ad7 | ||
|
|
ee5caaa81c | ||
|
|
a81976b5a5 | ||
|
|
fd32638787 | ||
|
|
816cd945f8 | ||
|
|
07f1f5f426 | ||
|
|
8ac124a19e | ||
|
|
e90116291f | ||
|
|
2dbb3f08cb | ||
|
|
71c333af5d | ||
|
|
925eca89d4 | ||
|
|
a712245ebe | ||
|
|
8c15df942d | ||
|
|
6ce4fbd7fc | ||
|
|
3e4fc70442 | ||
|
|
fc91416ab7 | ||
|
|
0f6ee71733 | ||
|
|
4dafa959c1 | ||
|
|
66a6c2d8f9 | ||
|
|
b2654e11a3 | ||
|
|
e2cfdda9cf | ||
|
|
b5085a8959 | ||
|
|
dccf01220c | ||
|
|
12dc5b69c0 | ||
|
|
0423b5f335 | ||
|
|
a4c37da10e | ||
|
|
de49279aab | ||
|
|
f651ffddf5 | ||
|
|
ee959b68dc | ||
|
|
b1d1201083 | ||
|
|
faff8fadc8 | ||
|
|
85a0f55b20 | ||
|
|
cf2e571d80 | ||
|
|
68596469eb | ||
|
|
181eda6ae4 | ||
|
|
31ed9c0e4c | ||
|
|
2916fb7112 | ||
|
|
1ca1a960b5 | ||
|
|
6c6a1c9465 | ||
|
|
0be7a21bab | ||
|
|
ca51988694 | ||
|
|
9184d54cb7 | ||
|
|
ca43582e4f | ||
|
|
a1552990bf | ||
|
|
99c9f50dfb | ||
|
|
565e14ecf3 | ||
|
|
521a8e0777 | ||
|
|
0141db4a64 | ||
|
|
9ed9db88b7 | ||
|
|
f52a05b477 | ||
|
|
8936204849 | ||
|
|
50efff2819 | ||
|
|
af325f9a62 | ||
|
|
fe29188e3f | ||
|
|
b753a98971 | ||
|
|
c73d88a7e2 | ||
|
|
bd872bc271 | ||
|
|
c0c03a0629 | ||
|
|
18f3f135c8 | ||
|
|
0304d0ac5a | ||
|
|
643fa1ad18 | ||
|
|
5c65874749 | ||
|
|
5a4db46427 | ||
|
|
305d376128 | ||
|
|
4308936c1a | ||
|
|
87b0ac9295 | ||
|
|
3dee3b2a0e | ||
|
|
c2f0e30511 | ||
|
|
a824a70cc6 | ||
|
|
07692f87f2 | ||
|
|
7f94b254a2 | ||
|
|
ceb3581c28 | ||
|
|
c3bf5d75d3 | ||
|
|
297d261ca9 | ||
|
|
89a67e7ee4 | ||
|
|
0d6d34a93b | ||
|
|
cb89a42184 | ||
|
|
6837b1d803 | ||
|
|
8967babc37 | ||
|
|
a4f93cfe8d | ||
|
|
5dde0b56f8 | ||
|
|
43dee3dfeb | ||
|
|
937dbc5c03 | ||
|
|
78e17c2abb | ||
|
|
4653dbcaba | ||
|
|
057e1b960a | ||
|
|
5feaabad92 | ||
|
|
2c395d4313 | ||
|
|
6af68cfc7a | ||
|
|
66f2c371ec | ||
|
|
c5bcf50d66 | ||
|
|
86625694fc | ||
|
|
dcaae8a15a | ||
|
|
1996399cde | ||
|
|
62d3fdd276 | ||
|
|
7740cf6eae | ||
|
|
5bbaa5d7c2 | ||
|
|
70cb1ad0fb | ||
|
|
fcfc404120 | ||
|
|
2f855874a6 | ||
|
|
26d5542864 | ||
|
|
ee5e0ef3a7 | ||
|
|
51e5cf5c55 | ||
|
|
3c09b8c3a7 | ||
|
|
6e25876230 | ||
|
|
c5a3e57974 | ||
|
|
508fb5f1e2 | ||
|
|
e9b6f5ab0f | ||
|
|
efb79cc7d2 | ||
|
|
901084f1f6 | ||
|
|
acb4ca7619 |
No files matched your search
@@ -0,0 +1,5 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
patreon: retrooper
|
||||
custom: ['https://paypal.me/retrooperdev']
|
||||
@@ -0,0 +1,41 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Report a bug to help us fix
|
||||
title: "[BUG REPORT]"
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
*Example:*
|
||||
1. Login on the 1.16.4 minecraft client.
|
||||
2. Join the server while it is still starting up.
|
||||
3. ....
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**About your server (please complete the following information):**
|
||||
- Spigot: [eg. Paper or Tuinity]
|
||||
We only accept reports that are reproducible
|
||||
on one of the supported spigots.
|
||||
|
||||
- Server Version: [eg. 1.16.4]
|
||||
Feel free to report bugs for versions newer than 1.7.10, even if we
|
||||
don’t support them yet, but be aware that we might have already
|
||||
found the bug and fixed it in a dev build, just before you reported it.
|
||||
Please don’t get frustrated in such cases.
|
||||
|
||||
- Plugins List if possible: [eg. ViaVersion, ProtocolLib, HolographicDisplays]
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
@@ -0,0 +1,21 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: FEATURE REQUEST
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered to solve your solution without
|
||||
us adding this as a feature?**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
@@ -0,0 +1,67 @@
|
||||
# For most projects, this workflow file will not need changing; you simply need
|
||||
# to commit it to your repository.
|
||||
#
|
||||
# You may wish to alter this file to override the set of languages analyzed,
|
||||
# or to provide custom queries or build logic.
|
||||
#
|
||||
# ******** NOTE ********
|
||||
# We have attempted to detect the languages in your repository. Please check
|
||||
# the `language` matrix defined below to confirm you have the correct set of
|
||||
# supported CodeQL languages.
|
||||
#
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master, dev ]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [ master, dev ]
|
||||
schedule:
|
||||
- cron: '39 0 * * 0'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: [ 'java' ]
|
||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
|
||||
# Learn more:
|
||||
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v1
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v1
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
|
||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||
# and modify them (or add more) to build your code if your project
|
||||
# uses a compiled language
|
||||
|
||||
#- run: |
|
||||
# make bootstrap
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v1
|
||||
+113
@@ -0,0 +1,113 @@
|
||||
#
|
||||
# JetBrains
|
||||
#
|
||||
|
||||
# User-specific stuff
|
||||
.idea/**/workspace.xml
|
||||
.idea/**/tasks.xml
|
||||
.idea/**/usage.statistics.xml
|
||||
.idea/**/dictionaries
|
||||
.idea/**/shelf
|
||||
|
||||
# Generated files
|
||||
.idea/**/contentModel.xml
|
||||
|
||||
# Sensitive or high-churn files
|
||||
.idea/**/dataSources/
|
||||
.idea/**/dataSources.ids
|
||||
.idea/**/dataSources.local.xml
|
||||
.idea/**/sqlDataSources.xml
|
||||
.idea/**/dynamic.xml
|
||||
.idea/**/uiDesigner.xml
|
||||
.idea/**/dbnavigator.xml
|
||||
|
||||
# Gradle
|
||||
.idea/**/gradle.xml
|
||||
.idea/**/libraries
|
||||
|
||||
# Gradle and Maven with auto-import
|
||||
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||
# since they will be recreated, and may cause churn. Uncomment if using
|
||||
# auto-import.
|
||||
# .idea/artifacts
|
||||
# .idea/compiler.xml
|
||||
# .idea/jarRepositories.xml
|
||||
# .idea/modules.xml
|
||||
# .idea/*.iml
|
||||
# .idea/modules
|
||||
# *.iml
|
||||
# *.ipr
|
||||
|
||||
# CMake
|
||||
cmake-build-*/
|
||||
|
||||
# Mongo Explorer plugin
|
||||
.idea/**/mongoSettings.xml
|
||||
|
||||
# File-based project format
|
||||
*.iws
|
||||
|
||||
# mpeltonen/sbt-idea plugin
|
||||
.idea_modules/
|
||||
|
||||
# JIRA plugin
|
||||
atlassian-ide-plugin.xml
|
||||
|
||||
# Cursive Clojure plugin
|
||||
.idea/replstate.xml
|
||||
|
||||
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||
com_crashlytics_export_strings.xml
|
||||
crashlytics.properties
|
||||
crashlytics-build.properties
|
||||
fabric.properties
|
||||
|
||||
# Editor-based Rest Client
|
||||
.idea/httpRequests
|
||||
|
||||
# Android studio 3.1+ serialized cache file
|
||||
.idea/caches/build_file_checksums.ser
|
||||
|
||||
|
||||
#
|
||||
# Java
|
||||
#
|
||||
|
||||
# Compiled class file
|
||||
*.class
|
||||
|
||||
# Log file
|
||||
*.log
|
||||
|
||||
# BlueJ files
|
||||
*.ctxt
|
||||
|
||||
# Mobile Tools for Java (J2ME)
|
||||
.mtj.tmp/
|
||||
|
||||
# Package Files #
|
||||
*.jar
|
||||
*.war
|
||||
*.nar
|
||||
*.ear
|
||||
*.zip
|
||||
*.tar.gz
|
||||
*.rar
|
||||
|
||||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||
hs_err_pid*
|
||||
|
||||
#
|
||||
# Maven
|
||||
#
|
||||
target/
|
||||
pom.xml.tag
|
||||
pom.xml.releaseBackup
|
||||
pom.xml.versionsBackup
|
||||
pom.xml.next
|
||||
release.properties
|
||||
dependency-reduced-pom.xml
|
||||
buildNumber.properties
|
||||
.mvn/timing.properties
|
||||
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
|
||||
.mvn/wrapper/maven-wrapper.jar
|
||||
Binary file not shown.
@@ -0,0 +1,2 @@
|
||||
#Thu Apr 29 17:43:21 CEST 2021
|
||||
gradle.version=7.0
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Whitespace-only changes.
Whitespace-only changes.
@@ -1,281 +1,622 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
0. Definitions.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
1. Source Code.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
2. Basic Permissions.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
14. Revised Versions of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
NO WARRANTY
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
@@ -287,15 +628,15 @@ free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
@@ -303,37 +644,31 @@ the "copyright" line and a pointer to where the full notice is found.
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
@@ -1,29 +1,23 @@
|
||||
# packetevents by retrooper
|
||||
|
||||
An asynchronous spigot packetListener coded by retrooper.
|
||||
|
||||
Credit to TinyProtocol, PacketEvents uses a modified version of [TinyProtocol](http://github.com/dmulloy2/ProtocolLib/blob/master/TinyProtocol/src/main/java/com/comphenix/tinyprotocol/TinyProtocol.java) by DeprecatedLuke to support 1.7.10 & 1.8.
|
||||
PacketEvents does some extra modifications to support the rest of the versions!
|
||||
All I do is make the wrapper classes and useful utilities that support 1.7.10 -> 1.15.2!
|
||||
This packetlistener is supported on spigot servers(Spigot, PaperSpigot, ...).
|
||||
|
||||
* No dependencies
|
||||
|
||||
* Licensed with the GPL2 license.
|
||||
|
||||
[](https://www.gnu.org/licenses/gpl-2.0)
|
||||
|
||||
Join my discord server(to talk to me): https://discord.gg/ZWTkg4v
|
||||
|
||||
How to use with **Gradle, Maven, sbt and leiningen**.
|
||||
|
||||
Click the link below.
|
||||
|
||||
Make sure to replace **Tag** with a proper release version or a valid commit hash(first 7 characters)
|
||||
|
||||
I recommend you to use the latest released version!
|
||||
|
||||
# packetevents
|
||||
|
||||
[](https://github.com/retrooper/packetevents/blob/dev/LICENSE)
|
||||
[](https://jitpack.io/#retrooper/packetevents)
|
||||
|
||||
If clicking the badge doesn't work paste this link into your browser http://jitpack.io/#retrooper/packetevents
|
||||
PacketEvents is an open-source Packet API. It has many cross-version packet-wrappers. You can process incoming and outgoing packets on the server. You can even send packets with our packet-wrappers. We are here to save you a ton of time.
|
||||
|
||||
### Resources
|
||||
* [SpigotMC](https://www.spigotmc.org/resources/packetevents-api.80279/)
|
||||
* [JavaDoc](https://retrooper.github.io/packetevents)
|
||||
|
||||
### Setup
|
||||
[Learn more](https://github.com/retrooper/packetevents/wiki/1.-Setup)
|
||||
|
||||
### Discord
|
||||
[Learn more](https://discord.me/packetevents)
|
||||
|
||||
### Contributing/Forking
|
||||
[Learn more](https://github.com/retrooper/packetevents/wiki/2.-Contributing-and-Forking)\
|
||||
Our discord server has a role for contributors and forkers.
|
||||
|
||||
### Sponsorships
|
||||
[](https://www.ej-technologies.com/products/jprofiler/overview.html)
|
||||
@@ -0,0 +1,71 @@
|
||||
/*
|
||||
* This file was generated by the Gradle 'init' task.
|
||||
*/
|
||||
|
||||
|
||||
plugins {
|
||||
id 'java'
|
||||
id 'maven-publish'
|
||||
}
|
||||
|
||||
//gradle myJavadocs
|
||||
task myJavadocs(type: Javadoc) {
|
||||
source = sourceSets.main.allJava
|
||||
File projectDir = getProjectDir()
|
||||
File javadocsDir = new File(projectDir.getParentFile().getAbsolutePath() + "/docs");
|
||||
javadocsDir.mkdirs()
|
||||
setDestinationDir(javadocsDir)
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
maven {
|
||||
url = uri('https://hub.spigotmc.org/nexus/content/repositories/snapshots/')
|
||||
}
|
||||
|
||||
maven {
|
||||
url = uri('https://jitpack.io/')
|
||||
}
|
||||
|
||||
maven {
|
||||
url = uri('https://nexus.funkemunky.cc/content/repositories/releases/')
|
||||
}
|
||||
|
||||
maven {
|
||||
url = uri('https://repo.viaversion.com/')
|
||||
}
|
||||
|
||||
maven {
|
||||
url = uri('https://oss.sonatype.org/content/repositories/releases/')
|
||||
}
|
||||
|
||||
maven {
|
||||
url = uri('https://repo.maven.apache.org/maven2/')
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'org.jetbrains:annotations:20.1.0'
|
||||
compileOnly 'org.github.spigot:1.8.8:1.8.8'
|
||||
compileOnly 'org.github.spigot:1.7.10:1.7.10'
|
||||
compileOnly 'us.myles:viaversion:3.2.0'
|
||||
compileOnly 'com.github.ProtocolSupport:ProtocolSupport:3d24efeda6'
|
||||
compileOnly 'org.spigotmc:spigot-api:1.16.5-R0.1-SNAPSHOT'
|
||||
}
|
||||
|
||||
group = 'io.github.retrooper'
|
||||
version = '1.8-pre-14'
|
||||
description = 'packetevents'
|
||||
java.sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
maven(MavenPublication) {
|
||||
from(components.java)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType(JavaCompile) {
|
||||
options.encoding = 'UTF-8'
|
||||
}
|
||||
Vendored
BIN
Binary file not shown.
+5
@@ -0,0 +1,5 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
@@ -0,0 +1,185 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
#
|
||||
# Copyright 2015 the original author or authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
##
|
||||
## Gradle start up script for UN*X
|
||||
##
|
||||
##############################################################################
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
# Resolve links: $0 may be a link
|
||||
PRG="$0"
|
||||
# Need this for relative symlinks.
|
||||
while [ -h "$PRG" ] ; do
|
||||
ls=`ls -ld "$PRG"`
|
||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||
if expr "$link" : '/.*' > /dev/null; then
|
||||
PRG="$link"
|
||||
else
|
||||
PRG=`dirname "$PRG"`"/$link"
|
||||
fi
|
||||
done
|
||||
SAVED="`pwd`"
|
||||
cd "`dirname \"$PRG\"`/" >/dev/null
|
||||
APP_HOME="`pwd -P`"
|
||||
cd "$SAVED" >/dev/null
|
||||
|
||||
APP_NAME="Gradle"
|
||||
APP_BASE_NAME=`basename "$0"`
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD="maximum"
|
||||
|
||||
warn () {
|
||||
echo "$*"
|
||||
}
|
||||
|
||||
die () {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "`uname`" in
|
||||
CYGWIN* )
|
||||
cygwin=true
|
||||
;;
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
NONSTOP* )
|
||||
nonstop=true
|
||||
;;
|
||||
esac
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD="java"
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
||||
MAX_FD_LIMIT=`ulimit -H -n`
|
||||
if [ $? -eq 0 ] ; then
|
||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
||||
MAX_FD="$MAX_FD_LIMIT"
|
||||
fi
|
||||
ulimit -n $MAX_FD
|
||||
if [ $? -ne 0 ] ; then
|
||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
||||
fi
|
||||
else
|
||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
||||
fi
|
||||
fi
|
||||
|
||||
# For Darwin, add options to specify how the application appears in the dock
|
||||
if $darwin; then
|
||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||
|
||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||
|
||||
# We build the pattern for arguments to be converted via cygpath
|
||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
||||
SEP=""
|
||||
for dir in $ROOTDIRSRAW ; do
|
||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
||||
SEP="|"
|
||||
done
|
||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
||||
# Add a user-defined pattern to the cygpath arguments
|
||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
||||
fi
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
i=0
|
||||
for arg in "$@" ; do
|
||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
||||
|
||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
||||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=`expr $i + 1`
|
||||
done
|
||||
case $i in
|
||||
0) set -- ;;
|
||||
1) set -- "$args0" ;;
|
||||
2) set -- "$args0" "$args1" ;;
|
||||
3) set -- "$args0" "$args1" "$args2" ;;
|
||||
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Escape application args
|
||||
save () {
|
||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||
echo " "
|
||||
}
|
||||
APP_ARGS=`save "$@"`
|
||||
|
||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
||||
|
||||
exec "$JAVACMD" "$@"
|
||||
Vendored
+89
@@ -0,0 +1,89 @@
|
||||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
: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 %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="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!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
||||
@@ -1,184 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>io.github.retrooper</groupId>
|
||||
<artifactId>packetevents</artifactId>
|
||||
<version>1.2.8</version>
|
||||
<packaging>jar</packaging>
|
||||
<name>packetevents</name>
|
||||
<properties>
|
||||
<java.version>1.8</java.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
<defaultGoal>clean package</defaultGoal>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.7.0</version>
|
||||
<configuration>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.7.0</version>
|
||||
<configuration>
|
||||
<source>${java.version}</source>
|
||||
<target>${java.version}</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
</build>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>spigot-repo</id>
|
||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>jitpack.io</id>
|
||||
<url>https://jitpack.io</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>funkemunky-releases</id>
|
||||
<url>https://nexus.funkemunky.cc/content/repositories/releases/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.14.1</artifactId>
|
||||
<version>1.14.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.15.1</artifactId>
|
||||
<version>1.15.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.14.3</artifactId>
|
||||
<version>1.14.3</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.14.2</artifactId>
|
||||
<version>1.14.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.15</artifactId>
|
||||
<version>1.15</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.15.2</artifactId>
|
||||
<version>1.15.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.13.2</artifactId>
|
||||
<version>1.13.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.7.10</artifactId>
|
||||
<version>1.7.10</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.8</artifactId>
|
||||
<version>1.8</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.8.3</artifactId>
|
||||
<version>1.8.3</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.8.8</artifactId>
|
||||
<version>1.8.8</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.9</artifactId>
|
||||
<version>1.9</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.9.4</artifactId>
|
||||
<version>1.9.4</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.10.2</artifactId>
|
||||
<version>1.10.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.11.1</artifactId>
|
||||
<version>1.11.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.11.2</artifactId>
|
||||
<version>1.11.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.12.1</artifactId>
|
||||
<version>1.12.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.12.2</artifactId>
|
||||
<version>1.12.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.13</artifactId>
|
||||
<version>1.13</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.github.spigot</groupId>
|
||||
<artifactId>1.14</artifactId>
|
||||
<version>1.14</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@@ -0,0 +1,5 @@
|
||||
/*
|
||||
* This file was generated by the Gradle 'init' task.
|
||||
*/
|
||||
|
||||
rootProject.name = 'packetevents'
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,711 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents;
|
||||
|
||||
import io.github.retrooper.packetevents.settings.PacketEventsSettings;
|
||||
import io.github.retrooper.packetevents.utils.server.ServerVersion;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public class PacketEventsPlugin extends JavaPlugin {
|
||||
//TODO Make a new pre-release (pre-14), push to master,
|
||||
//TODO Remove all deprecations including the legacy event system in 1.8.1 release
|
||||
//TODO finish remaining wrappers
|
||||
@Override
|
||||
public void onLoad() {
|
||||
//Return value of create is your PacketEvents instance.
|
||||
PacketEvents instance = PacketEvents.create(this);
|
||||
PacketEventsSettings settings = instance.getSettings();
|
||||
settings
|
||||
.fallbackServerVersion(ServerVersion.v_1_7_10)
|
||||
.compatInjector(false)
|
||||
.checkForUpdates(false);
|
||||
PacketEvents.get().loadAsyncNewThread();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
//Other way to access your instance...
|
||||
PacketEvents.get().init();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
PacketEvents.get().terminate();
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package io.github.retrooper.packetevents.enums;
|
||||
|
||||
public enum Direction {
|
||||
DOWN, UP, NORTH, SOUTH, WEST, EAST
|
||||
|
||||
,NORTH_EAST,
|
||||
NORTH_WEST, SOUTH_EAST,
|
||||
SOUTH_WEST, WEST_NORTH_WEST,
|
||||
NORTH_NORTH_WEST, NORTH_NORTH_EAST,
|
||||
EAST_NORTH_EAST, EAST_SOUTH_EAST,
|
||||
SOUTH_SOUTH_EAST, SOUTH_SOUTH_WEST,
|
||||
WEST_SOUTH_WEST, SELF, NULL;
|
||||
|
||||
public static Direction get(final byte i) {
|
||||
return values()[i];
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
package io.github.retrooper.packetevents.enums;
|
||||
|
||||
public enum EntityAnimationType {
|
||||
SWING_MAIN_ARM, DAMAGE, LEAVE_BED, SWING_OFFHAND, CRITICAL_EFFECT, MAGIC_CRITICAL_EFFECT;
|
||||
|
||||
public static final EntityAnimationType get(final int i) {
|
||||
return values()[i];
|
||||
}
|
||||
|
||||
public final int getIndex() {
|
||||
for(int i = 0; i < values().length; i++) {
|
||||
final EntityAnimationType curType = values()[0];
|
||||
if(curType == this) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package io.github.retrooper.packetevents.enums;
|
||||
|
||||
public enum EntityUseAction {
|
||||
INTERACT, INTERACT_AT, ATTACK, INVALID;
|
||||
|
||||
public static EntityUseAction get(final byte i) {
|
||||
return values()[i];
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
package io.github.retrooper.packetevents.enums;
|
||||
|
||||
public enum Hand {
|
||||
MAIN_HAND,
|
||||
OFF_HAND;
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package io.github.retrooper.packetevents.enums;
|
||||
|
||||
public enum PlayerAction {
|
||||
START_SNEAKING,
|
||||
|
||||
STOP_SNEAKING,
|
||||
|
||||
STOP_SLEEPING,
|
||||
|
||||
START_SPRINTING,
|
||||
|
||||
STOP_SPRINTING,
|
||||
|
||||
START_RIDING_JUMP,
|
||||
|
||||
STOP_RIDING_JUMP,
|
||||
|
||||
OPEN_INVENTORY,
|
||||
|
||||
START_FALL_FLYING;
|
||||
|
||||
public static PlayerAction get(final byte i) {
|
||||
return values()[i];
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
package io.github.retrooper.packetevents.enums;
|
||||
|
||||
public enum PlayerDigType {
|
||||
|
||||
START_DESTROY_BLOCK,
|
||||
|
||||
ABORT_DESTROY_BLOCK,
|
||||
|
||||
STOP_DESTROY_BLOCK,
|
||||
|
||||
DROP_ALL_ITEMS,
|
||||
|
||||
DROP_ITEM,
|
||||
|
||||
RELEASE_USE_ITEM,
|
||||
|
||||
SWAP_HELD_ITEMS,
|
||||
|
||||
WRONG_PACKET;
|
||||
|
||||
public static PlayerDigType get(final byte i) {
|
||||
return values()[i];
|
||||
}
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
package io.github.retrooper.packetevents.enums;
|
||||
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
|
||||
public enum ServerVersion {
|
||||
v_1_7_10, v_1_8, v_1_8_3, v_1_8_8, v_1_9, v_1_9_4, v_1_10, v_1_11, v_1_12, v_1_13, v_1_13_2, v_1_14, v_1_15,
|
||||
ERROR;
|
||||
|
||||
|
||||
public static ServerVersion getVersion() {
|
||||
ServerVersion[] vals = values();
|
||||
ArrayUtils.reverse(vals);
|
||||
for (ServerVersion val : vals) {
|
||||
String valName = val.name().substring(2).replace("_", ".");
|
||||
if (Bukkit.getBukkitVersion().contains(valName)) {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
private static final String nmsVersionSuffix = Bukkit.getServer().getClass().getPackage().getName().replace(".", ",").split(",")[3];
|
||||
|
||||
public static String getNmsSuffix() {
|
||||
return nmsVersionSuffix;
|
||||
}
|
||||
|
||||
public static String getNMSDirectory() {
|
||||
return "net.minecraft.server." + nmsVersionSuffix;
|
||||
}
|
||||
|
||||
public static String getOBCDirectory() {
|
||||
return "org.bukkit.craftbukkit." + getNmsSuffix();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns if the current version is more up to date than the argument passed version
|
||||
*
|
||||
* @param version
|
||||
* @return
|
||||
*/
|
||||
public boolean isHigherThan(final ServerVersion version) {
|
||||
if (this == version) return false;
|
||||
return !isLowerThan(version);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns if the current version is more outdated than the argument passed version
|
||||
*
|
||||
* @param version
|
||||
* @return
|
||||
*/
|
||||
public boolean isLowerThan(final ServerVersion version) {
|
||||
if(version == this) return false;
|
||||
byte len = (byte) values().length;
|
||||
for (byte i = 0; i < len; i++) {
|
||||
final ServerVersion v = values()[i];
|
||||
if(v == this) {
|
||||
return true;
|
||||
}
|
||||
else if(v == version) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,22 +1,719 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event;
|
||||
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.github.retrooper.packetevents.enums.ServerVersion;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.CallableEvent;
|
||||
|
||||
/**
|
||||
* Incoming and sent packets are called asynchronously,
|
||||
* recommended to avoid non thread safe bukkit operations
|
||||
* An event in both of PacketEvents' event systems.
|
||||
*
|
||||
* @author retrooper
|
||||
* @since 1.2.6
|
||||
*/
|
||||
public class PacketEvent {
|
||||
protected long timestamp = PacketEvents.currentTimeMS();
|
||||
protected static ServerVersion version = PacketEvents.getServerVersion();
|
||||
public abstract class PacketEvent implements CallableEvent {
|
||||
private long timestamp = System.currentTimeMillis();
|
||||
|
||||
/**
|
||||
* Timestamp of the packet
|
||||
* @return
|
||||
* Timestamp of when the PacketEvent was created.
|
||||
* Basically timestamp of the packet.
|
||||
*
|
||||
* @return Packet timestamp in milliseconds.
|
||||
*/
|
||||
public long getTimestamp() {
|
||||
return timestamp;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Setter for the timestamp.
|
||||
*
|
||||
* @param timestamp Packet timestamp in milliseconds.
|
||||
*/
|
||||
public void setTimestamp(final long timestamp) {
|
||||
this.timestamp = timestamp;
|
||||
}
|
||||
|
||||
public void callPacketEventExternal(final PacketListenerAbstract listener) {
|
||||
listener.onPacketEventExternal(this);
|
||||
}
|
||||
|
||||
public boolean isInbuilt() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package io.github.retrooper.packetevents.event;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@Target(ElementType.METHOD)
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
/**
|
||||
* Just like Bukkit's @EventHandler, but for packets.
|
||||
* Make sure your class implements the PacketListener interface, and is registered!
|
||||
*/
|
||||
public @interface PacketHandler {
|
||||
|
||||
|
||||
}
|
||||
@@ -1,4 +1,692 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event;
|
||||
|
||||
public interface PacketListener {
|
||||
/**
|
||||
* The legacy Packet listener.
|
||||
* Implement this interface in your listener if you are using the legacy event system.
|
||||
*
|
||||
* @author retrooper
|
||||
* @see PacketListenerAbstract
|
||||
* @since 1.2.6
|
||||
* @deprecated There is a new and better listener for the new event system.
|
||||
*/
|
||||
@Deprecated
|
||||
public interface PacketListener {
|
||||
}
|
||||
@@ -0,0 +1,855 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event;
|
||||
|
||||
import io.github.retrooper.packetevents.event.impl.*;
|
||||
import io.github.retrooper.packetevents.event.priority.PacketEventPriority;
|
||||
import io.github.retrooper.packetevents.utils.immutableset.ImmutableSetCustom;
|
||||
|
||||
/**
|
||||
* Abstract packet listener.
|
||||
* @author retrooper
|
||||
* @since 1.8
|
||||
*/
|
||||
public abstract class PacketListenerAbstract {
|
||||
private final PacketEventPriority priority;
|
||||
public ImmutableSetCustom<Byte> serverSidedStatusAllowance;
|
||||
public ImmutableSetCustom<Byte> serverSidedLoginAllowance;
|
||||
public ImmutableSetCustom<Byte> serverSidedPlayAllowance;
|
||||
|
||||
public ImmutableSetCustom<Byte> clientSidedStatusAllowance;
|
||||
public ImmutableSetCustom<Byte> clientSidedHandshakeAllowance;
|
||||
public ImmutableSetCustom<Byte> clientSidedLoginAllowance;
|
||||
public ImmutableSetCustom<Byte> clientSidedPlayAllowance;
|
||||
|
||||
public PacketListenerAbstract(final PacketEventPriority priority) {
|
||||
this.priority = priority;
|
||||
this.serverSidedStatusAllowance = null;
|
||||
this.serverSidedLoginAllowance = null;
|
||||
this.serverSidedPlayAllowance = null;
|
||||
|
||||
this.clientSidedStatusAllowance = null;
|
||||
this.clientSidedHandshakeAllowance = null;
|
||||
this.clientSidedLoginAllowance = null;
|
||||
this.clientSidedPlayAllowance = null;
|
||||
}
|
||||
|
||||
|
||||
public PacketListenerAbstract() {
|
||||
this(PacketEventPriority.NORMAL);
|
||||
}
|
||||
|
||||
public final PacketEventPriority getPriority() {
|
||||
return priority;
|
||||
}
|
||||
|
||||
public void onPacketStatusReceive(PacketStatusReceiveEvent event) {
|
||||
}
|
||||
|
||||
public void onPacketStatusSend(PacketStatusSendEvent event) {
|
||||
}
|
||||
|
||||
public void onPacketHandshakeReceive(PacketHandshakeReceiveEvent event) {
|
||||
}
|
||||
|
||||
public void onPacketLoginReceive(PacketLoginReceiveEvent event) {
|
||||
}
|
||||
|
||||
public void onPacketLoginSend(PacketLoginSendEvent event) {
|
||||
}
|
||||
|
||||
public void onPacketPlayReceive(PacketPlayReceiveEvent event) {
|
||||
}
|
||||
|
||||
public void onPacketPlaySend(PacketPlaySendEvent event) {
|
||||
}
|
||||
|
||||
public void onPostPacketPlayReceive(PostPacketPlayReceiveEvent event) {
|
||||
}
|
||||
|
||||
public void onPostPacketPlaySend(PostPacketPlaySendEvent event) {
|
||||
}
|
||||
|
||||
public void onPostPlayerInject(PostPlayerInjectEvent event) {
|
||||
}
|
||||
|
||||
public void onPlayerInject(PlayerInjectEvent event) {
|
||||
}
|
||||
|
||||
public void onPlayerEject(PlayerEjectEvent event) {
|
||||
}
|
||||
|
||||
public void onPacketEventExternal(PacketEvent event) {
|
||||
}
|
||||
|
||||
public final void addServerSidedStatusFilter(Byte... statusPacketIDs) {
|
||||
if (this.serverSidedStatusAllowance == null) {
|
||||
this.serverSidedStatusAllowance = new ImmutableSetCustom<>(statusPacketIDs);
|
||||
} else {
|
||||
this.serverSidedStatusAllowance.addAll(statusPacketIDs);
|
||||
}
|
||||
}
|
||||
|
||||
public final void addServerSidedLoginFilter(Byte... loginPacketIDs) {
|
||||
if (this.serverSidedLoginAllowance == null) {
|
||||
this.serverSidedLoginAllowance = new ImmutableSetCustom<>(loginPacketIDs);
|
||||
} else {
|
||||
this.serverSidedLoginAllowance.addAll(loginPacketIDs);
|
||||
}
|
||||
}
|
||||
|
||||
public final void addServerSidedPlayFilter(Byte... playPacketIDs) {
|
||||
if (this.serverSidedPlayAllowance == null) {
|
||||
this.serverSidedPlayAllowance = new ImmutableSetCustom<>(playPacketIDs);
|
||||
} else {
|
||||
this.serverSidedPlayAllowance.addAll(playPacketIDs);
|
||||
}
|
||||
}
|
||||
|
||||
public final void addClientSidedStatusFilter(Byte... statusPacketIDs) {
|
||||
if (this.clientSidedStatusAllowance == null) {
|
||||
this.clientSidedStatusAllowance = new ImmutableSetCustom<>(statusPacketIDs);
|
||||
} else {
|
||||
this.clientSidedStatusAllowance.addAll(statusPacketIDs);
|
||||
}
|
||||
}
|
||||
|
||||
public final void addClientSidedHandshakeFilter(Byte... handshakePacketIDs) {
|
||||
if (this.clientSidedHandshakeAllowance == null) {
|
||||
this.clientSidedHandshakeAllowance = new ImmutableSetCustom<>(handshakePacketIDs);
|
||||
} else {
|
||||
this.clientSidedHandshakeAllowance.addAll(handshakePacketIDs);
|
||||
}
|
||||
}
|
||||
|
||||
public final void addClientSidedLoginFilter(Byte... loginPacketIDs) {
|
||||
if (this.clientSidedLoginAllowance == null) {
|
||||
this.clientSidedLoginAllowance = new ImmutableSetCustom<>(loginPacketIDs);
|
||||
} else {
|
||||
this.clientSidedLoginAllowance.addAll(loginPacketIDs);
|
||||
}
|
||||
}
|
||||
|
||||
public final void addClientSidedPlayFilter(Byte... playPacketIDs) {
|
||||
if (this.clientSidedPlayAllowance == null) {
|
||||
this.clientSidedPlayAllowance = new ImmutableSetCustom<>(playPacketIDs);
|
||||
} else {
|
||||
this.clientSidedPlayAllowance.addAll(playPacketIDs);
|
||||
}
|
||||
}
|
||||
|
||||
public final void filterAll() {
|
||||
filterServerSidedStatus();
|
||||
filterServerSidedLogin();
|
||||
filterServerSidedPlay();
|
||||
|
||||
filterClientSidedStatus();
|
||||
filterClientSidedHandshake();
|
||||
filterClientSidedLogin();
|
||||
filterClientSidedPlay();
|
||||
}
|
||||
|
||||
public final void filterServerSidedStatus() {
|
||||
this.serverSidedStatusAllowance = new ImmutableSetCustom<>();
|
||||
}
|
||||
|
||||
public final void filterServerSidedLogin() {
|
||||
this.serverSidedLoginAllowance = new ImmutableSetCustom<>();
|
||||
}
|
||||
|
||||
public final void filterServerSidedPlay() {
|
||||
this.serverSidedPlayAllowance = new ImmutableSetCustom<>();
|
||||
}
|
||||
|
||||
public final void filterClientSidedStatus() {
|
||||
this.clientSidedStatusAllowance = new ImmutableSetCustom<>();
|
||||
}
|
||||
|
||||
public final void filterClientSidedHandshake() {
|
||||
this.clientSidedHandshakeAllowance = new ImmutableSetCustom<>();
|
||||
}
|
||||
|
||||
public final void filterClientSidedLogin() {
|
||||
this.clientSidedLoginAllowance = new ImmutableSetCustom<>();
|
||||
}
|
||||
|
||||
public final void filterClientSidedPlay() {
|
||||
this.clientSidedPlayAllowance = new ImmutableSetCustom<>();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,700 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event;
|
||||
|
||||
import io.github.retrooper.packetevents.event.priority.PacketEventPriority;
|
||||
|
||||
/**
|
||||
* Deprecated abstract PacketListener.
|
||||
* Please use {@link PacketListenerAbstract}, but this class will still work for a bit.
|
||||
*
|
||||
* @author retrooper
|
||||
* @since 1.7.7
|
||||
*/
|
||||
@Deprecated
|
||||
public abstract class PacketListenerDynamic extends PacketListenerAbstract {
|
||||
public PacketListenerDynamic(final PacketEventPriority priority) {
|
||||
super(priority);
|
||||
}
|
||||
|
||||
|
||||
public PacketListenerDynamic() {
|
||||
super(PacketEventPriority.NORMAL);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,699 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* This is what you override your event listener with on the old event system.
|
||||
* You can specify the event priority of the listener method.
|
||||
*
|
||||
* @author retrooper
|
||||
* @since 1.0
|
||||
* @deprecated Was used for the old event system, the new one doesn't need this anymore.
|
||||
*/
|
||||
@Target({ElementType.METHOD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Deprecated
|
||||
public @interface PacketHandler {
|
||||
byte priority() default 2; //NORMAL priority value
|
||||
}
|
||||
@@ -0,0 +1,698 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.eventtypes;
|
||||
|
||||
import io.github.retrooper.packetevents.event.PacketEvent;
|
||||
import io.github.retrooper.packetevents.event.PacketListenerAbstract;
|
||||
import io.github.retrooper.packetevents.event.impl.PacketPlayReceiveEvent;
|
||||
|
||||
/**
|
||||
* The {@link PacketEvent} implements this interface.
|
||||
* Every inbuilt event should implement the {@link #call(PacketListenerAbstract)} method.
|
||||
* If you are making a custom event, don't implement this.
|
||||
* The {@link PacketListenerAbstract#onPacketEventExternal(PacketEvent)} method is called for every event that is not in-built.
|
||||
* including custom events.
|
||||
*
|
||||
* @author retrooper
|
||||
* @see PacketPlayReceiveEvent
|
||||
* @since 1.8
|
||||
*/
|
||||
public interface CallableEvent {
|
||||
void call(PacketListenerAbstract listener);
|
||||
}
|
||||
+711
@@ -0,0 +1,711 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.eventtypes;
|
||||
|
||||
import io.github.retrooper.packetevents.event.impl.PacketPlayReceiveEvent;
|
||||
|
||||
/**
|
||||
* Every event that supports cancellation should implement this interface.
|
||||
* PacketEvents' event system lets the highest priority listener be have the highest priority
|
||||
* in deciding whether the event will cancel.
|
||||
* This means an event with a lower priority than the higher priority one would not be able to decide.
|
||||
* Cancelling the event means the action assosiated with the event will be cancelled.
|
||||
* For example, cancelling the {@link PacketPlayReceiveEvent}
|
||||
* will prevent minecraft from processing the incoming packet.
|
||||
*
|
||||
* @author retrooper
|
||||
* @see PacketPlayReceiveEvent
|
||||
* @since 1.7
|
||||
*/
|
||||
public interface CancellableEvent {
|
||||
|
||||
/**
|
||||
* This method returns if the event will be cancelled.
|
||||
*
|
||||
* @return Will the event be cancelled.
|
||||
*/
|
||||
boolean isCancelled();
|
||||
|
||||
/**
|
||||
* Cancel or proceed with the event.
|
||||
*
|
||||
* @param val Is the event cancelled
|
||||
*/
|
||||
void setCancelled(boolean val);
|
||||
}
|
||||
+705
@@ -0,0 +1,705 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.eventtypes;
|
||||
|
||||
import io.github.retrooper.packetevents.packetwrappers.NMSPacket;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
public abstract class CancellableNMSPacketEvent extends NMSPacketEvent implements CancellableEvent {
|
||||
private boolean cancelled;
|
||||
|
||||
public CancellableNMSPacketEvent(Object channel, NMSPacket packet) {
|
||||
super(channel, packet);
|
||||
}
|
||||
|
||||
public CancellableNMSPacketEvent(InetSocketAddress address, NMSPacket packet) {
|
||||
super(address, packet);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCancelled(boolean value) {
|
||||
cancelled = value;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,770 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.eventtypes;
|
||||
|
||||
import io.github.retrooper.packetevents.event.PacketEvent;
|
||||
import io.github.retrooper.packetevents.packettype.PacketType;
|
||||
import io.github.retrooper.packetevents.packetwrappers.NMSPacket;
|
||||
import io.github.retrooper.packetevents.utils.netty.channel.ChannelUtils;
|
||||
import io.github.retrooper.packetevents.utils.reflection.ClassUtil;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
/**
|
||||
* The {@code NMSPacketEvent} abstract class represents an event that has to do with an actual packet.
|
||||
* Don't mix this up with {@link io.github.retrooper.packetevents.event.PacketEvent}.
|
||||
* The PacketEvent class represents an event that belongs to PacketEvent's packet system.
|
||||
*
|
||||
* @author retrooper
|
||||
* @since 1.8
|
||||
*/
|
||||
public abstract class NMSPacketEvent extends PacketEvent implements CallableEvent {
|
||||
private final InetSocketAddress socketAddress;
|
||||
protected NMSPacket packet;
|
||||
protected boolean cancelled;
|
||||
private final byte packetID;
|
||||
|
||||
public NMSPacketEvent(Object channel, NMSPacket packet) {
|
||||
this(ChannelUtils.getSocketAddress(channel), packet);//Call the constructor below
|
||||
}
|
||||
|
||||
public NMSPacketEvent(InetSocketAddress address, NMSPacket packet) {
|
||||
this.socketAddress = address;
|
||||
this.packet = packet;
|
||||
packetID = PacketType.packetIDMap.getOrDefault(packet.getRawNMSPacket().getClass(), PacketType.INVALID);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the associated player's socket address.
|
||||
*
|
||||
* @return Socket address of the associated player.
|
||||
*/
|
||||
public final InetSocketAddress getSocketAddress() {
|
||||
return socketAddress;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns the name of the packet.
|
||||
* To get the name of the packet we get the class of the packet and then the name of the class.
|
||||
* See also: {@link Class#getSimpleName()}
|
||||
* We cache the name after the first call to improve performance.
|
||||
* Java 8 does not cache the name.
|
||||
* It is not recommended to call this method unless you NEED it.
|
||||
* If you are comparing packet types, use the {@link PacketType} byte system.
|
||||
* You would only need the packet name if packet type system doesn't contain your desired packet yet.
|
||||
*
|
||||
* @return Name of the packet.
|
||||
*/
|
||||
@Deprecated
|
||||
public final String getPacketName() {
|
||||
return ClassUtil.getClassSimpleName(packet.getRawNMSPacket().getClass());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the NMS packet.
|
||||
*
|
||||
* @return Get NMS packet.
|
||||
*/
|
||||
public final NMSPacket getNMSPacket() {
|
||||
return packet;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the NMS Packet.
|
||||
*
|
||||
* @param packet NMS Object
|
||||
*/
|
||||
public final void setNMSPacket(NMSPacket packet) {
|
||||
this.packet = packet;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Packet ID.
|
||||
*
|
||||
* @return Packet ID.
|
||||
*/
|
||||
public byte getPacketId() {
|
||||
return packetID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInbuilt() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,698 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.eventtypes;
|
||||
|
||||
import io.github.retrooper.packetevents.event.impl.PacketPlayReceiveEvent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
* Every event that has an associated player is recommended to implement this interface.
|
||||
*
|
||||
* @author retrooper
|
||||
* @see PacketPlayReceiveEvent
|
||||
* @since 1.6.9
|
||||
*/
|
||||
public interface PlayerEvent {
|
||||
/**
|
||||
* Associated player.
|
||||
*
|
||||
* @return Player.
|
||||
*/
|
||||
Player getPlayer();
|
||||
}
|
||||
+712
@@ -0,0 +1,712 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.impl;
|
||||
|
||||
import io.github.retrooper.packetevents.event.PacketListenerAbstract;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.CancellableNMSPacketEvent;
|
||||
import io.github.retrooper.packetevents.packetwrappers.NMSPacket;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
/**
|
||||
* The {@code PacketHandshakeReceiveEvent} event is fired whenever the a HANDSHAKE packet is received from a client.
|
||||
* The {@code PacketHandshakeReceiveEvent} has no Bukkit player, the player object is null in this state.
|
||||
* Use the {@link #getSocketAddress()} to identify who sends the packet.
|
||||
*
|
||||
* @author retrooper
|
||||
* @see <a href="https://wiki.vg/Protocol#Handshaking">https://wiki.vg/Protocol#Handshaking</a>
|
||||
* @since 1.8
|
||||
*/
|
||||
public class PacketHandshakeReceiveEvent extends CancellableNMSPacketEvent {
|
||||
public PacketHandshakeReceiveEvent(final Object channel, final NMSPacket packet) {
|
||||
super(channel, packet);
|
||||
}
|
||||
|
||||
public PacketHandshakeReceiveEvent(final InetSocketAddress socketAddress, final NMSPacket packet) {
|
||||
super(socketAddress, packet);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void call(PacketListenerAbstract listener) {
|
||||
if (listener.clientSidedLoginAllowance == null || listener.clientSidedLoginAllowance.contains(getPacketId())) {
|
||||
listener.onPacketHandshakeReceive(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
package io.github.retrooper.packetevents.event.impl;
|
||||
|
||||
import io.github.retrooper.packetevents.event.PacketEvent;
|
||||
|
||||
public class PacketLoginEvent extends PacketEvent {
|
||||
private final String name;
|
||||
private final Object packet;
|
||||
public PacketLoginEvent(final String packetName, final Object packet) {
|
||||
this.name = packetName;
|
||||
this.packet = packet;
|
||||
}
|
||||
|
||||
public String getPacketName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public Object getPacket() {
|
||||
return packet;
|
||||
}
|
||||
}
|
||||
+711
@@ -0,0 +1,711 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.impl;
|
||||
|
||||
import io.github.retrooper.packetevents.event.PacketListenerAbstract;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.CancellableNMSPacketEvent;
|
||||
import io.github.retrooper.packetevents.packetwrappers.NMSPacket;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
/**
|
||||
* The {@code PacketLoginReceiveEvent} event is fired whenever the a LOGIN packet is received from a client.
|
||||
* The {@code PacketLoginReceiveEvent} has no Bukkit player, the player object is null in this state.
|
||||
* Use the {@link #getSocketAddress()} to identify who sends the packet.
|
||||
*
|
||||
* @author retrooper
|
||||
* @see <a href="https://wiki.vg/Protocol#Login">https://wiki.vg/Protocol#Login</a>
|
||||
* @since 1.8
|
||||
*/
|
||||
public class PacketLoginReceiveEvent extends CancellableNMSPacketEvent {
|
||||
public PacketLoginReceiveEvent(final Object channel, final NMSPacket packet) {
|
||||
super(channel, packet);
|
||||
}
|
||||
|
||||
public PacketLoginReceiveEvent(final InetSocketAddress socketAddress, final NMSPacket packet) {
|
||||
super(socketAddress, packet);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void call(PacketListenerAbstract listener) {
|
||||
if (listener.clientSidedLoginAllowance == null || listener.clientSidedLoginAllowance.contains(getPacketId())) {
|
||||
listener.onPacketLoginReceive(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,711 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.impl;
|
||||
|
||||
import io.github.retrooper.packetevents.event.PacketListenerAbstract;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.CancellableNMSPacketEvent;
|
||||
import io.github.retrooper.packetevents.packetwrappers.NMSPacket;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
/**
|
||||
* The {@code PacketLoginSendEvent} event is fired whenever the a LOGIN packet is being planned to be sent to the client.
|
||||
* The {@code PacketLoginSendEvent} has no Bukkit player, the player object is null in this state.
|
||||
* Use the {@link #getSocketAddress()} to identify who sends the packet.
|
||||
*
|
||||
* @author retrooper
|
||||
* @see <a href="https://wiki.vg/Protocol#Login">https://wiki.vg/Protocol#Login</a>
|
||||
* @since 1.8
|
||||
*/
|
||||
public class PacketLoginSendEvent extends CancellableNMSPacketEvent {
|
||||
public PacketLoginSendEvent(Object channel, NMSPacket packet) {
|
||||
super(channel, packet);
|
||||
}
|
||||
|
||||
public PacketLoginSendEvent(InetSocketAddress address, NMSPacket packet) {
|
||||
super(address, packet);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void call(PacketListenerAbstract listener) {
|
||||
if (listener.serverSidedLoginAllowance == null || listener.serverSidedLoginAllowance.contains(getPacketId())) {
|
||||
listener.onPacketLoginSend(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
+724
@@ -0,0 +1,724 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.impl;
|
||||
|
||||
import io.github.retrooper.packetevents.event.PacketListenerAbstract;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.CancellableNMSPacketEvent;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.PlayerEvent;
|
||||
import io.github.retrooper.packetevents.packetwrappers.NMSPacket;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* The {@code PacketPlayReceiveEvent} event is fired whenever the a PLAY packet is
|
||||
* received from any connected client.
|
||||
* Cancelling this event will result in preventing minecraft from processing the incoming packet.
|
||||
* It would be as if the player never sent the packet from the server's view.
|
||||
*
|
||||
* @author retrooper
|
||||
* @see <a href="https://wiki.vg/Protocol#Play">https://wiki.vg/Protocol#Play</a>
|
||||
* @since 1.2.6
|
||||
*/
|
||||
public final class PacketPlayReceiveEvent extends CancellableNMSPacketEvent implements PlayerEvent {
|
||||
private final Player player;
|
||||
|
||||
public PacketPlayReceiveEvent(Player player, Object channel, NMSPacket packet) {
|
||||
super(channel, packet);
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns the bukkit player object of the packet sender.
|
||||
* The player object might be null during early packets.
|
||||
*
|
||||
* @return Packet sender.
|
||||
*/
|
||||
@NotNull
|
||||
@Override
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void call(PacketListenerAbstract listener) {
|
||||
if (listener.clientSidedPlayAllowance == null || listener.clientSidedPlayAllowance.contains(getPacketId())) {
|
||||
listener.onPacketPlayReceive(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,724 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.impl;
|
||||
|
||||
import io.github.retrooper.packetevents.event.PacketListenerAbstract;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.CancellableNMSPacketEvent;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.PlayerEvent;
|
||||
import io.github.retrooper.packetevents.packetwrappers.NMSPacket;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* The {@code PacketPlaySendEvent} event is fired whenever the a PLAY packet is about to be sent.
|
||||
* Cancelling this event will result in preventing minecraft from sending the packet.
|
||||
* The player won't receive the packet if you cancel it.
|
||||
*
|
||||
* @author retrooper
|
||||
* @see <a href="https://wiki.vg/Protocol#Play">https://wiki.vg/Protocol#Play</a>
|
||||
* @since 1.2.6
|
||||
*/
|
||||
public final class PacketPlaySendEvent extends CancellableNMSPacketEvent implements PlayerEvent {
|
||||
private final Player player;
|
||||
|
||||
public PacketPlaySendEvent(final Player player, final Object channel, final NMSPacket packet) {
|
||||
super(channel, packet);
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns the bukkit player object of the packet receiver.
|
||||
* The player object might be null during early packets.
|
||||
*
|
||||
* @return Packet receiver.
|
||||
*/
|
||||
@NotNull
|
||||
@Override
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void call(PacketListenerAbstract listener) {
|
||||
if (listener.serverSidedPlayAllowance == null || listener.serverSidedPlayAllowance.contains(getPacketId())) {
|
||||
listener.onPacketPlaySend(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
package io.github.retrooper.packetevents.event.impl;
|
||||
|
||||
import io.github.retrooper.packetevents.event.PacketEvent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PacketReceiveEvent extends PacketEvent {
|
||||
private final Player player;
|
||||
private final String name;
|
||||
private final Object packet;
|
||||
private boolean cancelled;
|
||||
|
||||
public PacketReceiveEvent(final Player player, final String packetName, final Object packet) {
|
||||
this.player = player;
|
||||
this.name = packetName;
|
||||
this.packet = packet;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the player sending the packet
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public Player getPlayer() {
|
||||
return this.player;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the packet's name (NMS packet class simple name)
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getPacketName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the raw packet object
|
||||
*
|
||||
* @return packet
|
||||
*/
|
||||
public Object getPacket() {
|
||||
return this.packet;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cancel the packet
|
||||
*
|
||||
* @param cancelled
|
||||
*/
|
||||
public void setCancelled(boolean cancelled) {
|
||||
this.cancelled = cancelled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns if the packet has been cancelled
|
||||
*
|
||||
* @return cancelled
|
||||
*/
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
}
|
||||
@@ -1,259 +0,0 @@
|
||||
package io.github.retrooper.packetevents.event.impl;
|
||||
|
||||
import io.github.retrooper.packetevents.event.PacketEvent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public class PacketSendEvent extends PacketEvent {
|
||||
private final Player player;
|
||||
private final String name;
|
||||
private final Object packet;
|
||||
private boolean cancelled;
|
||||
|
||||
public PacketSendEvent(final Player player, final String packetName, final Object packet) {
|
||||
this.player = player;
|
||||
this.name = packetName;
|
||||
this.packet = packet;
|
||||
this.cancelled = false;
|
||||
}
|
||||
|
||||
|
||||
public Player getPlayer() {
|
||||
return this.player;
|
||||
}
|
||||
|
||||
public String getPacketName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the raw packet object
|
||||
*
|
||||
* @return nmsPacket
|
||||
*/
|
||||
public Object getPacket() {
|
||||
return this.packet;
|
||||
}
|
||||
|
||||
|
||||
public void setCancelled(boolean cancelled) {
|
||||
this.cancelled = cancelled;
|
||||
}
|
||||
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
/**
|
||||
* Get the player's ping in the EntityPlayer's class
|
||||
* @return ping
|
||||
* @throws VersionNotFoundException
|
||||
|
||||
public int getPing() throws VersionNotFoundException {
|
||||
int ping;
|
||||
if (version == ServerVersion.v_1_8) {
|
||||
net.minecraft.server.v1_8_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_8_3) {
|
||||
net.minecraft.server.v1_8_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_8_8) {
|
||||
net.minecraft.server.v1_8_R3.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_9) {
|
||||
net.minecraft.server.v1_9_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_9_4) {
|
||||
net.minecraft.server.v1_9_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_10_2) {
|
||||
net.minecraft.server.v1_10_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_11_1 || version == ServerVersion.v_1_11_2) {
|
||||
net.minecraft.server.v1_11_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_12_1 || version == ServerVersion.v_1_12_2) {
|
||||
net.minecraft.server.v1_12_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_13) {
|
||||
net.minecraft.server.v1_13_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
}
|
||||
else if(version == ServerVersion.v_1_13_2) {
|
||||
net.minecraft.server.v1_13_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
}
|
||||
else if (version == ServerVersion.v_1_14 || version == ServerVersion.v_1_14_1) {
|
||||
net.minecraft.server.v1_14_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else if (version == ServerVersion.v_1_15_1) {
|
||||
net.minecraft.server.v1_15_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer)player).getHandle();
|
||||
ping = ePlayer.ping;
|
||||
} else {
|
||||
throw new VersionNotFoundException();
|
||||
}
|
||||
return ping;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the motX variable in the EntityPlayer class
|
||||
*
|
||||
* @return motX
|
||||
|
||||
public double getMotX() throws VersionNotFoundException {
|
||||
double motX;
|
||||
if (version == ServerVersion.v_1_8) {
|
||||
net.minecraft.server.v1_8_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_8_3) {
|
||||
net.minecraft.server.v1_8_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_8_8) {
|
||||
net.minecraft.server.v1_8_R3.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_9) {
|
||||
net.minecraft.server.v1_9_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_9_4) {
|
||||
net.minecraft.server.v1_9_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_10_2) {
|
||||
net.minecraft.server.v1_10_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_11_1 || version == ServerVersion.v_1_11_2) {
|
||||
net.minecraft.server.v1_11_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_12_1 || version == ServerVersion.v_1_12_2) {
|
||||
net.minecraft.server.v1_12_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
} else if (version == ServerVersion.v_1_13) {
|
||||
net.minecraft.server.v1_13_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
}
|
||||
else if(version == ServerVersion.v_1_13_2) {
|
||||
net.minecraft.server.v1_13_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.motX;
|
||||
}
|
||||
else if (version == ServerVersion.v_1_14 || version == ServerVersion.v_1_14_1) {
|
||||
net.minecraft.server.v1_14_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.getMot().getX();
|
||||
} else if (version == ServerVersion.v_1_15_1) {
|
||||
net.minecraft.server.v1_15_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer)player).getHandle();
|
||||
motX = ePlayer.getMot().getX();
|
||||
} else {
|
||||
throw new VersionNotFoundException();
|
||||
}
|
||||
return motX;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the motY variable in the EntityPlayer class
|
||||
*
|
||||
* @return motY
|
||||
|
||||
public double getMotY() throws VersionNotFoundException {
|
||||
double motY;
|
||||
if (version == ServerVersion.v_1_8) {
|
||||
net.minecraft.server.v1_8_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_8_3) {
|
||||
net.minecraft.server.v1_8_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_8_8) {
|
||||
net.minecraft.server.v1_8_R3.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_9) {
|
||||
net.minecraft.server.v1_9_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_9_4) {
|
||||
net.minecraft.server.v1_9_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_10_2) {
|
||||
net.minecraft.server.v1_10_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_11_1 || version == ServerVersion.v_1_11_2) {
|
||||
net.minecraft.server.v1_11_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_12_1 || version == ServerVersion.v_1_12_2) {
|
||||
net.minecraft.server.v1_12_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
} else if (version == ServerVersion.v_1_13) {
|
||||
net.minecraft.server.v1_13_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
}
|
||||
else if(version == ServerVersion.v_1_13_2) {
|
||||
net.minecraft.server.v1_13_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.motY;
|
||||
}
|
||||
else if (version == ServerVersion.v_1_14 || version == ServerVersion.v_1_14_1) {
|
||||
net.minecraft.server.v1_14_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.getMot().getY();
|
||||
} else if (version == ServerVersion.v_1_15_1) {
|
||||
net.minecraft.server.v1_15_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer)player).getHandle();
|
||||
motY = ePlayer.getMot().getY();
|
||||
} else {
|
||||
throw new VersionNotFoundException();
|
||||
}
|
||||
return motY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the motZ variable in the EntityPlayer class
|
||||
*
|
||||
* @return motZ
|
||||
|
||||
public double getMotZ() throws VersionNotFoundException {
|
||||
double motZ;
|
||||
if (version == ServerVersion.v_1_8) {
|
||||
net.minecraft.server.v1_8_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_8_3) {
|
||||
net.minecraft.server.v1_8_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_8_8) {
|
||||
net.minecraft.server.v1_8_R3.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_9) {
|
||||
net.minecraft.server.v1_9_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_9_4) {
|
||||
net.minecraft.server.v1_9_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_10_2) {
|
||||
net.minecraft.server.v1_10_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_11_1 || version == ServerVersion.v_1_11_2) {
|
||||
net.minecraft.server.v1_11_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_12_1 || version == ServerVersion.v_1_12_2) {
|
||||
net.minecraft.server.v1_12_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
} else if (version == ServerVersion.v_1_13) {
|
||||
net.minecraft.server.v1_13_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
}
|
||||
else if(version == ServerVersion.v_1_13_2) {
|
||||
net.minecraft.server.v1_13_R2.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.motZ;
|
||||
}
|
||||
else if (version == ServerVersion.v_1_14 || version == ServerVersion.v_1_14_1) {
|
||||
net.minecraft.server.v1_14_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.getMot().getZ();
|
||||
} else if (version == ServerVersion.v_1_15_1) {
|
||||
net.minecraft.server.v1_15_R1.EntityPlayer ePlayer = ((org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer)player).getHandle();
|
||||
motZ = ePlayer.getMot().getZ();
|
||||
} else {
|
||||
throw new VersionNotFoundException();
|
||||
}
|
||||
return motZ;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
+711
@@ -0,0 +1,711 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.impl;
|
||||
|
||||
import io.github.retrooper.packetevents.event.PacketListenerAbstract;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.CancellableNMSPacketEvent;
|
||||
import io.github.retrooper.packetevents.packetwrappers.NMSPacket;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
/**
|
||||
* The {@code PacketStatusReceiveEvent} event is fired whenever the server receives a STATUS packet from a client.
|
||||
* The {@code PacketStatusSendEvent} has no Bukkit player, the player object is null in this state.
|
||||
* Use the {@link #getSocketAddress()} to identify who sends the packet.
|
||||
*
|
||||
* @author retrooper
|
||||
* @see <a href="https://wiki.vg/Protocol#Status">https://wiki.vg/Protocol#Status</a>
|
||||
* @since 1.8
|
||||
*/
|
||||
public class PacketStatusReceiveEvent extends CancellableNMSPacketEvent {
|
||||
public PacketStatusReceiveEvent(final Object channel, final NMSPacket packet) {
|
||||
super(channel, packet);
|
||||
}
|
||||
|
||||
public PacketStatusReceiveEvent(final InetSocketAddress socketAddress, final NMSPacket packet) {
|
||||
super(socketAddress, packet);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void call(PacketListenerAbstract listener) {
|
||||
if (listener.clientSidedStatusAllowance == null || listener.clientSidedStatusAllowance.contains(getPacketId())) {
|
||||
listener.onPacketStatusReceive(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,714 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.impl;
|
||||
|
||||
import io.github.retrooper.packetevents.event.PacketListenerAbstract;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.CancellableEvent;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.CancellableNMSPacketEvent;
|
||||
import io.github.retrooper.packetevents.packetwrappers.NMSPacket;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
/**
|
||||
* The {@code PacketStatusSendEvent} event is fired whenever the server wants to send a STATUS packet to the client.
|
||||
* This class implements {@link CancellableEvent}.
|
||||
* The {@code PacketStatusSendEvent} has no Bukkit player, the player object is null in this state.
|
||||
* Use the {@link #getSocketAddress()} to identify who sends the packet.
|
||||
*
|
||||
* @author retrooper
|
||||
* @see <a href="https://wiki.vg/Protocol#Status">https://wiki.vg/Protocol#Status</a>
|
||||
* @since 1.8
|
||||
*/
|
||||
public class PacketStatusSendEvent extends CancellableNMSPacketEvent {
|
||||
public PacketStatusSendEvent(Object channel, NMSPacket packet) {
|
||||
super(channel, packet);
|
||||
}
|
||||
|
||||
public PacketStatusSendEvent(InetSocketAddress address, NMSPacket packet) {
|
||||
super(address, packet);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void call(PacketListenerAbstract listener) {
|
||||
if (listener.serverSidedStatusAllowance == null || listener.serverSidedStatusAllowance.contains(getPacketId())) {
|
||||
listener.onPacketStatusSend(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,744 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.impl;
|
||||
|
||||
import io.github.retrooper.packetevents.event.PacketEvent;
|
||||
import io.github.retrooper.packetevents.event.PacketListenerAbstract;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.CancellableEvent;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.PlayerEvent;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* The {@code PlayerEjectEvent} event is fired whenever a player is ejected.
|
||||
* This class implements {@link CancellableEvent} and {@link PlayerEvent}.
|
||||
*
|
||||
* @author retrooper
|
||||
* @see <a href="https://github.com/retrooper/packetevents/blob/dev/src/main/java/io/github/retrooper/packetevents/handler/PacketHandlerInternal.java">https://github.com/retrooper/packetevents/blob/dev/src/main/java/io/github/retrooper/packetevents/handler/PacketHandlerInternal.java</a>
|
||||
* @since 1.6.9
|
||||
*/
|
||||
public final class PlayerEjectEvent extends PacketEvent implements CancellableEvent, PlayerEvent {
|
||||
private final Player player;
|
||||
private boolean cancelled;
|
||||
|
||||
public PlayerEjectEvent(final Player player) {
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCancelled(boolean value) {
|
||||
cancelled = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns the bukkit player object of the player being ejected.
|
||||
* The player object is guaranteed to NOT be null.
|
||||
*
|
||||
* @return Ejected player.
|
||||
*/
|
||||
@NotNull
|
||||
@Override
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Is the event called async?
|
||||
* @deprecated Now always false
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isAsync() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void call(PacketListenerAbstract listener) {
|
||||
listener.onPlayerEject(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInbuilt() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,760 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.impl;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.github.retrooper.packetevents.event.PacketEvent;
|
||||
import io.github.retrooper.packetevents.event.PacketListenerAbstract;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.CancellableEvent;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.PlayerEvent;
|
||||
import io.github.retrooper.packetevents.utils.netty.channel.ChannelUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class PlayerInjectEvent extends PacketEvent {
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
/**
|
||||
* The {@code PlayerInjectEvent} event is fired whenever a player is injected.
|
||||
* A player is injected by PacketEvents whenever they join the server.
|
||||
* This class implements {@link CancellableEvent} and {@link PlayerEvent}.
|
||||
*
|
||||
* @author retrooper
|
||||
* @see <a href="https://github.com/retrooper/packetevents/blob/dev/src/main/java/io/github/retrooper/packetevents/handler/PacketHandlerInternal.java">https://github.com/retrooper/packetevents/blob/dev/src/main/java/io/github/retrooper/packetevents/handler/PacketHandlerInternal.java</a>
|
||||
* @since 1.6.9
|
||||
*/
|
||||
public final class PlayerInjectEvent extends PacketEvent implements CancellableEvent, PlayerEvent {
|
||||
private final Player player;
|
||||
private final InetSocketAddress address;
|
||||
private boolean cancelled;
|
||||
|
||||
public PlayerInjectEvent(final Player player) {
|
||||
this.player = player;
|
||||
this.address = ChannelUtils.getSocketAddress(PacketEvents.get().getPlayerUtils().getChannel(player));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCancelled(boolean value) {
|
||||
cancelled = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns the bukkit player object of the player being injected.
|
||||
* This player might not be fully initialized.
|
||||
*
|
||||
* @return Injected Player.
|
||||
*/
|
||||
@Nullable
|
||||
@Override
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns the socket address injecting player.
|
||||
*
|
||||
* @return Socket address of the injecting player.
|
||||
*/
|
||||
@Nullable
|
||||
public InetSocketAddress getSocketAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will always be false
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isAsync() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void call(PacketListenerAbstract listener) {
|
||||
listener.onPlayerInject(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInbuilt() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
package io.github.retrooper.packetevents.event.impl;
|
||||
|
||||
import io.github.retrooper.packetevents.event.PacketEvent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PlayerUninjectEvent extends PacketEvent {
|
||||
private final Player player;
|
||||
|
||||
public PlayerUninjectEvent(final Player player) {
|
||||
this.player =player;
|
||||
}
|
||||
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
}
|
||||
+719
@@ -0,0 +1,719 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.impl;
|
||||
|
||||
import io.github.retrooper.packetevents.event.PacketListenerAbstract;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.NMSPacketEvent;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.PlayerEvent;
|
||||
import io.github.retrooper.packetevents.packetwrappers.NMSPacket;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
* The {@code PostPacketPlayReceiveEvent} event is fired after all PacketEvents listeners finished processing
|
||||
* the {@code PacketPlayReceiveEvent}. This event won't be called if the PacketPlayReceiveEvent event was cancelled.
|
||||
* You cannot cancel this event.
|
||||
* @author retrooper
|
||||
* @see <a href="https://wiki.vg/Protocol#Serverbound_4">https://wiki.vg/Protocol#Serverbound_4</a>
|
||||
* @since 1.7
|
||||
*/
|
||||
public class PostPacketPlayReceiveEvent extends NMSPacketEvent implements PlayerEvent {
|
||||
private final Player player;
|
||||
|
||||
public PostPacketPlayReceiveEvent(final Player player, final Object channel, final NMSPacket packet) {
|
||||
super(channel, packet);
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns the bukkit player object of the packet sender.
|
||||
*
|
||||
* @return Packet sender.
|
||||
*/
|
||||
@Override
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void call(PacketListenerAbstract listener) {
|
||||
if (listener.clientSidedPlayAllowance == null || listener.clientSidedPlayAllowance.contains(getPacketId())) {
|
||||
listener.onPostPacketPlayReceive(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
+720
@@ -0,0 +1,720 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.impl;
|
||||
|
||||
import io.github.retrooper.packetevents.event.PacketListenerAbstract;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.NMSPacketEvent;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.PlayerEvent;
|
||||
import io.github.retrooper.packetevents.packetwrappers.NMSPacket;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
* The {@code PostPacketPlaySendEvent} event is fired after all PacketEvents listeners finished processing
|
||||
* the {@code PacketPlaySendEvent}. This event won't be called if the PacketPlaySendEvent event was cancelled.
|
||||
* You cannot cancel this event.
|
||||
*
|
||||
* @author retrooper
|
||||
* @see <a href="https://wiki.vg/Protocol#Clientbound_4">https://wiki.vg/Protocol#Clientbound_4</a>
|
||||
* @since 1.7
|
||||
*/
|
||||
public class PostPacketPlaySendEvent extends NMSPacketEvent implements PlayerEvent {
|
||||
private final Player player;
|
||||
|
||||
public PostPacketPlaySendEvent(final Player player, final Object channel, final NMSPacket packet) {
|
||||
super(channel, packet);
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns the bukkit player object of the packet sender.
|
||||
*
|
||||
* @return Packet receiver.
|
||||
*/
|
||||
@Override
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void call(PacketListenerAbstract listener) {
|
||||
if (listener.serverSidedPlayAllowance == null || listener.serverSidedPlayAllowance.contains(getPacketId())) {
|
||||
listener.onPostPacketPlaySend(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,765 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.impl;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.github.retrooper.packetevents.event.PacketEvent;
|
||||
import io.github.retrooper.packetevents.event.PacketListenerAbstract;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.PlayerEvent;
|
||||
import io.github.retrooper.packetevents.utils.netty.channel.ChannelUtils;
|
||||
import io.github.retrooper.packetevents.utils.player.ClientVersion;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
/**
|
||||
* The {@code PostPlayerInjectEvent} event is fired after a successful injection.
|
||||
* Use the {@link #isAsync()} method to figure out if is being called sync or async.
|
||||
* A player is injected by PacketEvents each time they join the server.
|
||||
* @author retrooper
|
||||
* @see <a href="https://github.com/retrooper/packetevents/blob/dev/src/main/java/io/github/retrooper/packetevents/handler/PacketHandlerInternal.java">https://github.com/retrooper/packetevents/blob/dev/src/main/java/io/github/retrooper/packetevents/handler/PacketHandlerInternal.java</a>
|
||||
* @since 1.3
|
||||
*/
|
||||
public class PostPlayerInjectEvent extends PacketEvent implements PlayerEvent {
|
||||
private final Player player;
|
||||
private final boolean async;
|
||||
|
||||
public PostPlayerInjectEvent(Player player, boolean async) {
|
||||
this.player = player;
|
||||
this.async = async;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns the bukkit player object of the player that has been injected.
|
||||
* The player is guaranteed to not be null.
|
||||
*
|
||||
* @return Injected Player.
|
||||
*/
|
||||
@NotNull
|
||||
@Override
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns the cached netty channel of the player.
|
||||
*
|
||||
* @return Netty channel of the injected player.
|
||||
*/
|
||||
@NotNull
|
||||
public Object getChannel() {
|
||||
return PacketEvents.get().getPlayerUtils().getChannel(player);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public InetSocketAddress getSocketAddress() {
|
||||
return ChannelUtils.getSocketAddress(getChannel());
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns the ClientVersion of the injected player.
|
||||
*
|
||||
* @return ClientVersion of injected player.
|
||||
* @see ClientVersion
|
||||
*/
|
||||
@NotNull
|
||||
public ClientVersion getClientVersion() {
|
||||
return PacketEvents.get().getPlayerUtils().getClientVersion(player);
|
||||
}
|
||||
|
||||
/**
|
||||
* Has the event been called async or sync?
|
||||
*
|
||||
* @return Was the event call in an async context?
|
||||
*/
|
||||
public boolean isAsync() {
|
||||
return async;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void call(PacketListenerAbstract listener) {
|
||||
listener.onPostPlayerInject(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInbuilt() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package io.github.retrooper.packetevents.event.impl;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.github.retrooper.packetevents.event.PacketEvent;
|
||||
|
||||
//unfinished
|
||||
public class ServerReloadEvent extends PacketEvent {
|
||||
private final long currentTime;
|
||||
|
||||
public ServerReloadEvent(final long currentTime){
|
||||
this.currentTime = currentTime;
|
||||
}
|
||||
|
||||
public ServerReloadEvent() {
|
||||
this.currentTime = PacketEvents.currentTimeMS();
|
||||
}
|
||||
|
||||
public final long getCurrentTime() {
|
||||
return currentTime;
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
package io.github.retrooper.packetevents.event.impl;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.github.retrooper.packetevents.event.PacketEvent;
|
||||
|
||||
public class ServerTickEvent extends PacketEvent {
|
||||
private final int tick;
|
||||
private final double tps;
|
||||
public ServerTickEvent(final int tick, final long timestamp) {
|
||||
this.tick = tick;
|
||||
this.timestamp = timestamp;
|
||||
this.tps = PacketEvents.getCurrentServerTPS();
|
||||
}
|
||||
|
||||
public ServerTickEvent(final int tick) {
|
||||
this.tick = tick;
|
||||
this.tps = PacketEvents.getCurrentServerTPS();
|
||||
}
|
||||
|
||||
|
||||
public long getTimestamp() {
|
||||
return timestamp;
|
||||
}
|
||||
|
||||
public int getCurrentTick() {
|
||||
return tick;
|
||||
}
|
||||
|
||||
public double getCurrentServerTPS() {
|
||||
return tps;
|
||||
}
|
||||
}
|
||||
@@ -1,53 +1,830 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.manager;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.github.retrooper.packetevents.event.PacketEvent;
|
||||
import io.github.retrooper.packetevents.event.PacketHandler;
|
||||
import io.github.retrooper.packetevents.event.PacketListener;
|
||||
import io.github.retrooper.packetevents.event.PacketListenerAbstract;
|
||||
import io.github.retrooper.packetevents.event.PacketListenerDynamic;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
/**
|
||||
* This is the event manager interface.
|
||||
* Every method is already implemented, we just use this
|
||||
* to have less code duplications.
|
||||
* You can either call event manager methods in the
|
||||
* {@link io.github.retrooper.packetevents.PacketEvents} instance or with an instance of the
|
||||
* {@link PEEventManager} stored in {@link PacketEvents}.
|
||||
*
|
||||
* @author retrooper
|
||||
* @see PacketEvents#getEventManager()
|
||||
* @since 1.0
|
||||
*/
|
||||
public interface EventManager {
|
||||
|
||||
public class EventManager {
|
||||
/**
|
||||
* Call a packet event.
|
||||
* This will let all listeners(new and deprecated listeners) process the event.
|
||||
* It isn't recommended to use a mix of both listeners(new and deprecated),
|
||||
* but it will work and they are compatible.
|
||||
*
|
||||
* @param event {@link PacketEvent}
|
||||
* @return Same event manager instance.
|
||||
*/
|
||||
default EventManager callEvent(PacketEvent event) {
|
||||
//The dynamic event manager calls the legacy event manager.
|
||||
PEEventManager.EVENT_MANAGER_MODERN.callEvent(event);
|
||||
return this;
|
||||
}
|
||||
|
||||
private HashMap<PacketListener, List<Method>> registeredMethods = new HashMap<PacketListener, List<Method>>();
|
||||
|
||||
public void callEvent(final PacketEvent e) {
|
||||
for (final PacketListener listener : registeredMethods.keySet()) {
|
||||
//Annotated methods
|
||||
final List<Method> methods = registeredMethods.get(listener);
|
||||
for (final Method method : methods) {
|
||||
if (method.getParameterTypes()[0].equals(PacketEvent.class)
|
||||
|| method.getParameterTypes()[0].getSimpleName().equals(e.getClass().getSimpleName())) {
|
||||
try {
|
||||
method.invoke(listener, e);
|
||||
} catch (IllegalAccessException | InvocationTargetException ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Register a deprecated event listener.
|
||||
* Not recommended to use the deprecated event listener.
|
||||
*
|
||||
* @param listener {@link PacketListener}
|
||||
* @return Same event manager instance.
|
||||
*/
|
||||
@Deprecated
|
||||
default EventManager registerListener(PacketListener listener) {
|
||||
if (listener != null) {
|
||||
PEEventManager.EVENT_MANAGER_LEGACY.registerListener(listener);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Register multiple deprecated event listeners with one method.
|
||||
* Not recommended to use the deprecated event listener.
|
||||
*
|
||||
* @param listeners {@link PacketListener}
|
||||
* @return Same event manager instance.
|
||||
*/
|
||||
@Deprecated
|
||||
default EventManager registerListeners(PacketListener... listeners) {
|
||||
PEEventManager.EVENT_MANAGER_LEGACY.registerListeners(listeners);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregister a deprecated event listener.
|
||||
* Not recommended to use the deprecated event listener.
|
||||
*
|
||||
* @param listener {@link PacketListener}
|
||||
* @return Same event manager instance.
|
||||
*/
|
||||
@Deprecated
|
||||
default EventManager unregisterListener(PacketListener listener) {
|
||||
PEEventManager.EVENT_MANAGER_LEGACY.unregisterListener(listener);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregister multiple deprecated event listeners with one method.
|
||||
* Not recommended to use the deprecated event listener.
|
||||
*
|
||||
* @param listeners {@link PacketListener}
|
||||
* @return Same event manager instance.
|
||||
*/
|
||||
@Deprecated
|
||||
default EventManager unregisterListeners(PacketListener... listeners) {
|
||||
PEEventManager.EVENT_MANAGER_LEGACY.unregisterListeners(listeners);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a PacketListenerDynamic listener.
|
||||
*
|
||||
* @param listener {@link PacketListenerDynamic}
|
||||
* @return Same event manager instance.
|
||||
*/
|
||||
@Deprecated
|
||||
default EventManager registerListener(PacketListenerDynamic listener) {
|
||||
PEEventManager.EVENT_MANAGER_MODERN.registerListener(listener);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Register multiple PacketListenerDynamic listeners.
|
||||
*
|
||||
* @param listeners {@link PacketListenerDynamic}
|
||||
* @return Same event manager instance.
|
||||
*/
|
||||
@Deprecated
|
||||
default EventManager registerListeners(PacketListenerDynamic... listeners) {
|
||||
PEEventManager.EVENT_MANAGER_MODERN.registerListeners(listeners);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public void registerListener(final PacketListener e) {
|
||||
final List<Method> methods = new ArrayList<Method>();
|
||||
for (final Method m : e.getClass().getMethods()) {
|
||||
if (m.isAnnotationPresent(PacketHandler.class)) {
|
||||
methods.add(m);
|
||||
}
|
||||
/**
|
||||
* Register a PacketListenerAbstract listener.
|
||||
*
|
||||
* @param listener {@link PacketListenerAbstract}
|
||||
* @return Same event manager instance.
|
||||
*/
|
||||
default EventManager registerListener(PacketListenerAbstract listener) {
|
||||
if (listener != null) {
|
||||
PEEventManager.EVENT_MANAGER_MODERN.registerListener(listener);
|
||||
}
|
||||
registeredMethods.put(e, methods);
|
||||
return this;
|
||||
}
|
||||
|
||||
public void unregisterListener(final PacketListener e) {
|
||||
registeredMethods.remove(e);
|
||||
/**
|
||||
* Register multiple PacketListenerAbstract listeners.
|
||||
*
|
||||
* @param listeners {@link PacketListenerAbstract}
|
||||
* @return Same event manager instance.
|
||||
*/
|
||||
default EventManager registerListeners(PacketListenerAbstract... listeners) {
|
||||
PEEventManager.EVENT_MANAGER_MODERN.registerListeners(listeners);
|
||||
return this;
|
||||
}
|
||||
|
||||
public void unregisterAllListeners() {
|
||||
registeredMethods.clear();
|
||||
/**
|
||||
* Unregister all registered event listeners.
|
||||
* All the deprecated and the dynamic listeners will be unregistered.
|
||||
*
|
||||
* @return Same event manager instance.
|
||||
*/
|
||||
default EventManager unregisterAllListeners() {
|
||||
PEEventManager.EVENT_MANAGER_MODERN.unregisterAllListeners();
|
||||
PEEventManager.EVENT_MANAGER_LEGACY.unregisterAllListeners();
|
||||
return this;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,820 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.manager;
|
||||
|
||||
import io.github.retrooper.packetevents.event.PacketEvent;
|
||||
import io.github.retrooper.packetevents.event.PacketListener;
|
||||
import io.github.retrooper.packetevents.event.annotation.PacketHandler;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.CancellableEvent;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
|
||||
@Deprecated
|
||||
class EventManagerLegacy {
|
||||
/**
|
||||
* Map storing all all legacy packet event listeners.
|
||||
* The key is an individual listener, the values are the key's event methods.
|
||||
*/
|
||||
|
||||
private final Map<PacketListener, HashSet<Method>> staticRegisteredMethods = new HashMap<>();
|
||||
|
||||
/**
|
||||
* Call a PacketEvent with the legacy event manager.
|
||||
* This method processes the event on all legacy packet event listeners.
|
||||
* This method is actually called by {@link EventManagerModern#callEvent(PacketEvent)} as the
|
||||
* if you mix the two event systems, the dynamic listeners are always processed first and pass
|
||||
* their highest reached event priority that this legacy one has to beat/reach to be able to cancel
|
||||
* the event.
|
||||
* This downside of this system is the event listeners aren't executed in any particular order, just
|
||||
* in the order they were registered.
|
||||
* This system is also slower than the other event system.
|
||||
*
|
||||
* @param event {@link PacketEvent}
|
||||
* @param eventPriority Priority the legacy listeners should beat to decide cancellation of the event.
|
||||
*/
|
||||
@Deprecated
|
||||
public void callEvent(final PacketEvent event, byte eventPriority) {
|
||||
boolean isCancelled = false;
|
||||
if (event instanceof CancellableEvent) {
|
||||
isCancelled = ((CancellableEvent) event).isCancelled();
|
||||
}
|
||||
//STATIC LISTENERS
|
||||
for (final PacketListener listener : staticRegisteredMethods.keySet()) {
|
||||
HashSet<Method> methods = staticRegisteredMethods.get(listener);
|
||||
|
||||
for (Method method : methods) {
|
||||
Class<?> parameterType = method.getParameterTypes()[0];
|
||||
if (parameterType.equals(PacketEvent.class)
|
||||
|| parameterType.isInstance(event)) {
|
||||
|
||||
PacketHandler annotation = method.getAnnotation(PacketHandler.class);
|
||||
try {
|
||||
method.invoke(listener, event);
|
||||
} catch (IllegalAccessException | InvocationTargetException ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
if (event instanceof CancellableEvent) {
|
||||
CancellableEvent ce = (CancellableEvent) event;
|
||||
if (annotation.priority() >= eventPriority) {
|
||||
eventPriority = annotation.priority();
|
||||
isCancelled = ce.isCancelled();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (event instanceof CancellableEvent) {
|
||||
CancellableEvent ce = (CancellableEvent) event;
|
||||
ce.setCancelled(isCancelled);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a legacy packet event listener.
|
||||
* Not recommended to use the deprecated event listener.
|
||||
*
|
||||
* @param listener {@link PacketListener}
|
||||
*/
|
||||
@Deprecated
|
||||
public void registerListener(final PacketListener listener) {
|
||||
final HashSet<Method> methods = new HashSet<>();
|
||||
for (final Method m : listener.getClass().getDeclaredMethods()) {
|
||||
if (!m.isAccessible()) {
|
||||
m.setAccessible(true);
|
||||
}
|
||||
if (m.isAnnotationPresent(PacketHandler.class)
|
||||
&& m.getParameterTypes().length == 1) {
|
||||
methods.add(m);
|
||||
}
|
||||
}
|
||||
|
||||
if (!methods.isEmpty()) {
|
||||
staticRegisteredMethods.put(listener, methods);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Register multiple legacy packet event listeners with one method.
|
||||
* Not recommended to use the deprecated event listener.
|
||||
*
|
||||
* @param listeners {@link PacketListener}
|
||||
*/
|
||||
@Deprecated
|
||||
public void registerListeners(final PacketListener... listeners) {
|
||||
for (final PacketListener listener : listeners) {
|
||||
registerListener(listener);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregister a legacy packet event listener.
|
||||
* Not recommended to use the deprecated event listener.
|
||||
*
|
||||
* @param listener {@link PacketListener}
|
||||
*/
|
||||
@Deprecated
|
||||
public void unregisterListener(final PacketListener listener) {
|
||||
staticRegisteredMethods.remove(listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregister multiple legacy packet event listeners with one method.
|
||||
* Not recommended to use the deprecated event listener.
|
||||
*
|
||||
* @param listeners {@link PacketListener}
|
||||
*/
|
||||
@Deprecated
|
||||
public void unregisterListeners(final PacketListener... listeners) {
|
||||
for (final PacketListener listener : listeners) {
|
||||
unregisterListener(listener);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregister all legacy packet event listeners.
|
||||
*/
|
||||
@Deprecated
|
||||
public void unregisterAllListeners() {
|
||||
staticRegisteredMethods.clear();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,769 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.manager;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.github.retrooper.packetevents.event.PacketEvent;
|
||||
import io.github.retrooper.packetevents.event.PacketListenerAbstract;
|
||||
import io.github.retrooper.packetevents.event.eventtypes.CancellableEvent;
|
||||
import io.github.retrooper.packetevents.event.priority.PacketEventPriority;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.logging.Level;
|
||||
|
||||
class EventManagerModern {
|
||||
private final Map<Byte, HashSet<PacketListenerAbstract>> listenersMap = new ConcurrentHashMap<>();
|
||||
|
||||
/**
|
||||
* Call the PacketEvent.
|
||||
* This method processes the event on all the registered dynamic packet event listeners.
|
||||
* The {@link PacketEventPriority#LOWEST} prioritized listeners will be processing first,
|
||||
* the {@link PacketEventPriority#MONITOR} will be processing last and can
|
||||
* be the final decider whether the event has been cancelled or not.
|
||||
* This call event also calls the legacy event manager call event.
|
||||
*
|
||||
* @param event {@link PacketEvent}
|
||||
* @see EventManagerLegacy#callEvent(PacketEvent, byte)
|
||||
*/
|
||||
public void callEvent(final PacketEvent event) {
|
||||
boolean cancel = false;
|
||||
if (event instanceof CancellableEvent) {
|
||||
cancel = ((CancellableEvent) event).isCancelled();
|
||||
}
|
||||
byte highestReachedPriority = PacketEventPriority.LOWEST.getPriorityValue();
|
||||
for (byte priority = PacketEventPriority.LOWEST.getPriorityValue(); priority <= PacketEventPriority.MONITOR.getPriorityValue(); priority++) {
|
||||
HashSet<PacketListenerAbstract> listeners = listenersMap.get(priority);
|
||||
if (listeners != null) {
|
||||
for (PacketListenerAbstract listener : listeners) {
|
||||
try {
|
||||
event.call(listener);
|
||||
} catch (Exception ex) {
|
||||
PacketEvents.get().getPlugin().getLogger()
|
||||
.log(Level.SEVERE, "PacketEvents found an exception while calling a packet listener.", ex);
|
||||
}
|
||||
if (event instanceof CancellableEvent) {
|
||||
CancellableEvent ce = (CancellableEvent) event;
|
||||
cancel = ce.isCancelled();
|
||||
highestReachedPriority = priority;
|
||||
}
|
||||
}
|
||||
if (event instanceof CancellableEvent) {
|
||||
CancellableEvent ce = (CancellableEvent) event;
|
||||
ce.setCancelled(cancel);
|
||||
}
|
||||
}
|
||||
}
|
||||
PEEventManager.EVENT_MANAGER_LEGACY.callEvent(event, highestReachedPriority);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the dynamic packet event listener.
|
||||
*
|
||||
* @param listener {@link PacketListenerAbstract}
|
||||
*/
|
||||
public synchronized void registerListener(final PacketListenerAbstract listener) {
|
||||
byte priority = listener.getPriority().getPriorityValue();
|
||||
HashSet<PacketListenerAbstract> listenerSet = listenersMap.get(priority);
|
||||
if (listenerSet == null) {
|
||||
listenerSet = new HashSet<>();
|
||||
}
|
||||
listenerSet.add(listener);
|
||||
listenersMap.put(priority, listenerSet);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register multiple dynamic packet event listeners with one method.
|
||||
*
|
||||
* @param listeners {@link PacketListenerAbstract}
|
||||
*/
|
||||
public synchronized void registerListeners(PacketListenerAbstract... listeners) {
|
||||
for (PacketListenerAbstract listener : listeners) {
|
||||
registerListener(listener);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregister all dynamic packet event listeners.
|
||||
*/
|
||||
public synchronized void unregisterAllListeners() {
|
||||
listenersMap.clear();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,692 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.manager;
|
||||
|
||||
/**
|
||||
* Class storing a static instance of the dynamic and the legacy event manager.
|
||||
*
|
||||
* @author retrooper
|
||||
* @since 1.8
|
||||
*/
|
||||
public class PEEventManager implements EventManager {
|
||||
|
||||
public static final EventManagerLegacy EVENT_MANAGER_LEGACY = new EventManagerLegacy();
|
||||
public static final EventManagerModern EVENT_MANAGER_MODERN = new EventManagerModern();
|
||||
|
||||
}
|
||||
+751
@@ -0,0 +1,751 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.event.priority;
|
||||
|
||||
/**
|
||||
* Event priority enum for the new event system.
|
||||
* The event priority counts for the whole {@link io.github.retrooper.packetevents.event.PacketListenerAbstract}
|
||||
* and not for just one event.
|
||||
* The priority can be specified in the PacketListenerAbstract constructor.
|
||||
* If you don't specify a priority in the constructor, it will use the {@link #NORMAL} priority.
|
||||
*
|
||||
* @author retrooper
|
||||
* @since 1.6.9
|
||||
*/
|
||||
public enum PacketEventPriority {
|
||||
/**
|
||||
* The weakest event priority.
|
||||
* The first to be processed(IN THE DYNAMIC EVENT SYSTEM ONLY).
|
||||
* Use this if you need to be the first processing the event and
|
||||
* need no power in cancelling an event or preventing an event cancellation.
|
||||
*/
|
||||
LOWEST,
|
||||
|
||||
/**
|
||||
* A weak event priority.
|
||||
* Second to be processed(IN THE DYNAMIC EVENT SYSTEM ONLY).
|
||||
* Use this if you would prefer to be one of the first to process the event,
|
||||
* but don't mind if some other listener processes before you.
|
||||
*/
|
||||
LOW,
|
||||
|
||||
/**
|
||||
* Default event priority.
|
||||
* Third to be processed(IN THE DYNAMIC EVENT SYSTEM ONLY).
|
||||
* Use this if you don't really care/know when you process or just want to
|
||||
* be in the middle.
|
||||
*/
|
||||
NORMAL,
|
||||
|
||||
/**
|
||||
* Higher than the {@link PacketEventPriority#NORMAL} event priority.
|
||||
* Fourth to be processed(IN THE DYNAMIC EVENT SYSTEM ONLY).
|
||||
* Use this if you want to process before the default event prioritized listeners.
|
||||
*/
|
||||
HIGH,
|
||||
|
||||
/**
|
||||
* Second most powerful event priority.
|
||||
* Fifth to be processed(IN THE DYNAMIC EVENT SYSTEM ONLY).
|
||||
* Use this if you prefer to be one of the last to process,
|
||||
* but don't mind if some other listener really needs to process after you.
|
||||
* Also use this if you prefer deciding if the event cancelled or not, but don't
|
||||
* mind if some other listener urgently needs to decide over you.
|
||||
* {@link PacketEventPriority#MONITOR} is rarely ever recommended to use.
|
||||
*/
|
||||
HIGHEST,
|
||||
|
||||
/**
|
||||
* Most powerful event priority.
|
||||
* Last(Sixth) to be processed(IN THE DYNAMIC EVENT SYSTEM ONLY).
|
||||
* Use this if you urgently need to be the last to process
|
||||
* or urgently need to be the final decider whether the event has cancelled or not.
|
||||
* This is rarely recommended.
|
||||
*/
|
||||
MONITOR;
|
||||
|
||||
|
||||
public static PacketEventPriority getPacketEventPriority(byte bytePriority) {
|
||||
return values()[bytePriority];
|
||||
}
|
||||
|
||||
public byte getPriorityValue() {
|
||||
return (byte) ordinal();
|
||||
}
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
package io.github.retrooper.packetevents.example;
|
||||
|
||||
import io.github.retrooper.packetevents.event.PacketEvent;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
* Example packetevent
|
||||
* Make sure to initiate the super timestamp variable,
|
||||
* if you want to use the getTimestamp() function
|
||||
*/
|
||||
public class CustomMoveEvent extends PacketEvent {
|
||||
private final Player player;
|
||||
private Location to, from;
|
||||
private boolean cancelled;
|
||||
|
||||
public CustomMoveEvent(final Player player, final Location to, final Location from) {
|
||||
this.player = player;
|
||||
this.to = to;
|
||||
this.from = from;
|
||||
this.cancelled = false;
|
||||
//Timestamp is initialized automatically, so you don't need to initiate it, but you may modify it if you like
|
||||
//this.timestamp = PacketEvents.currentTimeMS();
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getTimestamp() {
|
||||
return super.getTimestamp();
|
||||
}
|
||||
|
||||
public void setCancelled(boolean cancelled) {
|
||||
this.cancelled = cancelled;
|
||||
}
|
||||
|
||||
public boolean isCancelled() {
|
||||
return this.cancelled;
|
||||
}
|
||||
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
public Location getTo() {
|
||||
return to;
|
||||
}
|
||||
|
||||
public Location getFrom() {
|
||||
return from;
|
||||
}
|
||||
|
||||
public void setTo(final Location loc) {
|
||||
this.to = loc;
|
||||
}
|
||||
|
||||
public void setFrom(final Location loc) {
|
||||
this.from = from;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
package io.github.retrooper.packetevents.example;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public class MainExample extends JavaPlugin {
|
||||
@Override
|
||||
public void onEnable() {
|
||||
|
||||
//Should the ServerTickEvent ever get called?
|
||||
final boolean serverTickEventEnabled = true;
|
||||
|
||||
/**
|
||||
* Starts the servertickevent repeating task (if enabled)
|
||||
* and registers onJoin and onQuit events to inject and uninject players.
|
||||
* The first argument is an instance to your Main Class,
|
||||
* The second argument is a boolean whether the servertickevent should ever get called
|
||||
*/
|
||||
PacketEvents.setup(this, serverTickEventEnabled);
|
||||
|
||||
|
||||
/**
|
||||
* Register TestExample's PacketListener
|
||||
*/
|
||||
PacketEvents.getEventManager().registerListener(new RegisteredListener());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
/**
|
||||
* Stops server tick event task if enabled and unregister all listeners
|
||||
*/
|
||||
PacketEvents.cleanup();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,169 +0,0 @@
|
||||
package io.github.retrooper.packetevents.example;
|
||||
|
||||
import io.github.retrooper.packetevents.enums.*;
|
||||
import io.github.retrooper.packetevents.event.PacketEvent;
|
||||
import io.github.retrooper.packetevents.event.PacketHandler;
|
||||
import io.github.retrooper.packetevents.event.PacketListener;
|
||||
import io.github.retrooper.packetevents.event.impl.*;
|
||||
import io.github.retrooper.packetevents.packet.Packet;
|
||||
import io.github.retrooper.packetevents.packetwrappers.in.abilities.WrappedPacketInAbilities;
|
||||
import io.github.retrooper.packetevents.packetwrappers.in.blockdig.WrappedPacketInBlockDig;
|
||||
import io.github.retrooper.packetevents.packetwrappers.in.blockplace.WrappedPacketInBlockPlace;
|
||||
import io.github.retrooper.packetevents.packetwrappers.in.chat.WrappedPacketInChat;
|
||||
import io.github.retrooper.packetevents.packetwrappers.in.entityaction.WrappedPacketInEntityAction;
|
||||
import io.github.retrooper.packetevents.packetwrappers.in.flying.WrappedPacketInFlying;
|
||||
import io.github.retrooper.packetevents.packetwrappers.in.keepalive.WrappedPacketInKeepAlive;
|
||||
import io.github.retrooper.packetevents.packetwrappers.in.useentity.WrappedPacketInUseEntity;
|
||||
import io.github.retrooper.packetevents.packetwrappers.out.chat.WrappedPacketOutChat;
|
||||
import io.github.retrooper.packetevents.packetwrappers.out.entityvelocity.WrappedPacketOutEntityVelocity;
|
||||
import io.github.retrooper.packetevents.utils.vector.Vector3i;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
/**
|
||||
* Implementing PacketListener to listen to packets and packetevents' custom events,
|
||||
*/
|
||||
public class RegisteredListener implements PacketListener {
|
||||
|
||||
|
||||
/**
|
||||
* Listen to PacketReceiveEvent
|
||||
*
|
||||
* @param e PacketReceiveEvent
|
||||
*/
|
||||
@PacketHandler
|
||||
public void onPacketReceive(PacketReceiveEvent e) {
|
||||
final Player p = e.getPlayer();
|
||||
final long timestamp = e.getTimestamp();
|
||||
switch (e.getPacketName()) {
|
||||
case Packet.Client.USE_ENTITY:
|
||||
final WrappedPacketInUseEntity useEntity = new WrappedPacketInUseEntity(e.getPacket());
|
||||
final Entity entity = useEntity.getEntity();
|
||||
final double distanceSquared = entity.getLocation().distanceSquared(p.getLocation());
|
||||
final EntityUseAction useAction = useEntity.getAction();
|
||||
break;
|
||||
case Packet.Client.ABILITIES:
|
||||
final WrappedPacketInAbilities abilities = new WrappedPacketInAbilities(e.getPacket());
|
||||
final boolean isVulnerable = abilities.isVulnerable();
|
||||
final boolean isFlying = abilities.isFlying();
|
||||
final boolean canFly = abilities.canFly();
|
||||
final boolean canInstantlyBuild = abilities.canInstantlyBuild();
|
||||
final float flySpeed = abilities.getFlySpeed();
|
||||
final float walkSpeed = abilities.getWalkSpeed();
|
||||
// e.getPlayer().sendMessage("walkspeed: " + walkSpeed + ", flyspeed: " + flySpeed + ", canFly: " + canFly);
|
||||
break;
|
||||
case Packet.Client.BLOCK_DIG:
|
||||
//Custom PlayerDigType enum
|
||||
final WrappedPacketInBlockDig blockDig = new WrappedPacketInBlockDig(e.getPacket());
|
||||
final PlayerDigType type = blockDig.getDigType();
|
||||
final Direction direction = blockDig.getDirection();
|
||||
break;
|
||||
case Packet.Client.FLYING:
|
||||
final WrappedPacketInFlying flying = new WrappedPacketInFlying(e.getPacket());
|
||||
final float pitch = flying.getPitch();
|
||||
final float yaw = flying.getYaw();
|
||||
break;
|
||||
case Packet.Client.POSITION:
|
||||
final WrappedPacketInFlying.WrappedPacketInPosition position =
|
||||
new WrappedPacketInFlying.WrappedPacketInPosition(e.getPacket());
|
||||
final boolean isPos = position.isPosition(); //true
|
||||
break;
|
||||
case Packet.Client.POSITION_LOOK:
|
||||
final WrappedPacketInFlying.WrappedPacketInPosition_Look position_look =
|
||||
new WrappedPacketInFlying.WrappedPacketInPosition_Look(e.getPacket());
|
||||
final boolean isLook = position_look.isLook(); //true
|
||||
break;
|
||||
case Packet.Client.CHAT:
|
||||
final WrappedPacketInChat chat = new WrappedPacketInChat(e.getPacket());
|
||||
final String message = chat.getMessage();
|
||||
if(message.contains("jump")) {
|
||||
//teleport them up in the air
|
||||
// PacketEvents.sendPacket(e.getPlayer(), new WrappedPacketOutEntityVelocity(e.getPlayer(), 0, 3, 0));
|
||||
}
|
||||
else if(message.contains("swing arm")) {
|
||||
//Swing the player's arm
|
||||
// PacketEvents.sendPacket(e.getPlayer(), new WrappedPacketOutAnimation(e.getPlayer(), EntityAnimationType.SWING_MAIN_ARM));
|
||||
}
|
||||
break;
|
||||
case Packet.Client.BLOCK_PLACE:
|
||||
final WrappedPacketInBlockPlace blockPlace = new WrappedPacketInBlockPlace(e.getPlayer(), e.getPacket());
|
||||
final Vector3i blockPosition = blockPlace.getBlockPosition();
|
||||
final Hand h = blockPlace.getHand();
|
||||
final ItemStack stack = blockPlace.getItemStack();
|
||||
break;
|
||||
case Packet.Client.KEEP_ALIVE:
|
||||
final WrappedPacketInKeepAlive keepAlive = new WrappedPacketInKeepAlive(e.getPacket());
|
||||
final long responseID = keepAlive.getId();
|
||||
break;
|
||||
case Packet.Client.ENTITY_ACTION:
|
||||
final WrappedPacketInEntityAction entityAction = new WrappedPacketInEntityAction(e.getPacket());
|
||||
final PlayerAction action = entityAction.getAction();
|
||||
final int jumpBoost = entityAction.getJumpBoost();
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* I recommend you use the player inject event
|
||||
* to register your players instead of any other bukkit event,
|
||||
* to avoid any issues.
|
||||
* @param event
|
||||
*/
|
||||
@PacketHandler
|
||||
public void onInject(PlayerInjectEvent event) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* I recommend you use the player uninject event,
|
||||
* to unregister your players
|
||||
*
|
||||
* You can also call this event to "whitelist" a player,
|
||||
* our API won't even notice the player exists, so you won't
|
||||
* be able to listen to any packets from the player
|
||||
* @param e
|
||||
*/
|
||||
@PacketHandler
|
||||
public void onUninject(PlayerUninjectEvent e) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Another way to listen to packets
|
||||
*
|
||||
* @param e PacketEvent
|
||||
*/
|
||||
@PacketHandler
|
||||
public void onPacket(PacketEvent e) {
|
||||
if (e instanceof PacketSendEvent) {
|
||||
final PacketSendEvent p = (PacketSendEvent) e;
|
||||
final Player targetPlayer = p.getPlayer();
|
||||
final Object rawNMSPacket = p.getPacket();
|
||||
final long timestamp = p.getTimestamp();
|
||||
if(p.getPacketName().equals(Packet.Server.ENTITY_VELOCITY)) {
|
||||
final WrappedPacketOutEntityVelocity vel = new WrappedPacketOutEntityVelocity(p.getPacket());
|
||||
final double velocityX = vel.getVelocityX();
|
||||
final double velocityY = vel.getVelocityY();
|
||||
final double velocityZ = vel.getVelocityZ();
|
||||
|
||||
|
||||
}
|
||||
else if(p.getPacketName().equals(Packet.Server.CHAT)) {
|
||||
final WrappedPacketOutChat chat = new WrappedPacketOutChat(p.getPacket());
|
||||
}
|
||||
} else if (e instanceof CustomMoveEvent) {
|
||||
final CustomMoveEvent event = (CustomMoveEvent) e;
|
||||
final Player player = event.getPlayer();
|
||||
final Location to = event.getTo();
|
||||
final Location from = event.getFrom();
|
||||
} else if (e instanceof ServerTickEvent) {
|
||||
final ServerTickEvent event = (ServerTickEvent) e;
|
||||
final int currentTick = event.getCurrentTick();
|
||||
// System.out.println(PacketEvents.getCurrentServerTPS() + " is tps");
|
||||
}
|
||||
}
|
||||
}
|
||||
+705
@@ -0,0 +1,705 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.exceptions;
|
||||
|
||||
/**
|
||||
* An exception thrown by PacketEvents when the {@link io.github.retrooper.packetevents.PacketEvents#load}
|
||||
* method fails to execute without any exceptions.
|
||||
* Resulting in PacketEvents failing to load.
|
||||
*
|
||||
* @author retrooper
|
||||
* @since 1.7.6
|
||||
*/
|
||||
public class PacketEventsLoadFailureException extends RuntimeException {
|
||||
public PacketEventsLoadFailureException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
public PacketEventsLoadFailureException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
}
|
||||
|
||||
public PacketEventsLoadFailureException() {
|
||||
this("PacketEvents failed to load...");
|
||||
}
|
||||
|
||||
public PacketEventsLoadFailureException(Throwable cause) {
|
||||
this("PacketEvents failed to load...", cause);
|
||||
}
|
||||
}
|
||||
+700
@@ -0,0 +1,700 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.exceptions;
|
||||
|
||||
import io.github.retrooper.packetevents.utils.reflection.ClassUtil;
|
||||
|
||||
/**
|
||||
* An exception thrown by PacketEvents when a wrapper fails
|
||||
* to find a field.
|
||||
*
|
||||
* @author retrooper
|
||||
* @see io.github.retrooper.packetevents.packetwrappers.WrappedPacket#read(int, Class)
|
||||
* @see io.github.retrooper.packetevents.packetwrappers.WrappedPacket#write(Class, int, Object)
|
||||
* @since 1.6.9
|
||||
*/
|
||||
public class WrapperFieldNotFoundException extends RuntimeException {
|
||||
public WrapperFieldNotFoundException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
public WrapperFieldNotFoundException(Class<?> packetClass, Class<?> type, int index) {
|
||||
this("PacketEvents failed to find a " + ClassUtil.getClassSimpleName(type) + " indexed " + index + " by its type in the " + packetClass.getName() + " class!");
|
||||
}
|
||||
}
|
||||
+702
@@ -0,0 +1,702 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.exceptions;
|
||||
|
||||
import io.github.retrooper.packetevents.packetwrappers.WrappedPacket;
|
||||
import io.github.retrooper.packetevents.utils.reflection.ClassUtil;
|
||||
|
||||
/**
|
||||
* An exception thrown by PacketEvents when a wrapper is used although it isn't supported on the local server version.
|
||||
* Make sure to decompile a wrapper before using it, if you are unsure if it is supported through out all the server versions.
|
||||
* We override a {@link WrappedPacket#isSupported()} method if it isn't supported on all server versions.
|
||||
*
|
||||
* @author retrooper
|
||||
* @see WrappedPacket#isSupported()
|
||||
* @see WrappedPacket.SupportedVersions
|
||||
* @since 1.7
|
||||
*/
|
||||
public class WrapperUnsupportedUsageException extends RuntimeException {
|
||||
public WrapperUnsupportedUsageException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
public WrapperUnsupportedUsageException(Class<? extends WrappedPacket> wrapperClass) {
|
||||
this("You are using a packet wrapper which happens to be unsupported on the local server version. Packet wrapper you attempted to use: " + ClassUtil.getClassSimpleName(wrapperClass));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,695 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.injector;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public interface ChannelInjector {
|
||||
void inject();
|
||||
|
||||
void eject();
|
||||
|
||||
void injectPlayer(Player player);
|
||||
|
||||
void ejectPlayer(Player player);
|
||||
|
||||
boolean hasInjected(Player player);
|
||||
|
||||
void sendPacket(Object channel, Object rawNMSPacket);
|
||||
}
|
||||
@@ -0,0 +1,687 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.injector;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public interface EarlyInjector extends ChannelInjector {
|
||||
void updatePlayerObject(Player player, Object channel);
|
||||
|
||||
boolean isBound();
|
||||
}
|
||||
@@ -0,0 +1,755 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.injector;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.github.retrooper.packetevents.event.impl.PlayerEjectEvent;
|
||||
import io.github.retrooper.packetevents.event.impl.PlayerInjectEvent;
|
||||
import io.github.retrooper.packetevents.injector.legacy.early.EarlyChannelInjectorLegacy;
|
||||
import io.github.retrooper.packetevents.injector.modern.early.EarlyChannelInjectorModern;
|
||||
import io.github.retrooper.packetevents.injector.legacy.late.LateChannelInjectorLegacy;
|
||||
import io.github.retrooper.packetevents.injector.modern.late.LateChannelInjectorModern;
|
||||
import io.github.retrooper.packetevents.utils.nms.NMSUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class GlobalChannelInjector implements ChannelInjector {
|
||||
private ChannelInjector injector;
|
||||
|
||||
public GlobalChannelInjector() {
|
||||
|
||||
}
|
||||
|
||||
public void load() {
|
||||
boolean legacy = NMSUtils.legacyNettyImportMode;
|
||||
if (!PacketEvents.get().getSettings().shouldUseCompatibilityInjector()) {
|
||||
injector = legacy ? new EarlyChannelInjectorLegacy() : new EarlyChannelInjectorModern();
|
||||
} else {
|
||||
injector = legacy ? new LateChannelInjectorLegacy() : new LateChannelInjectorModern();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void inject() {
|
||||
try {
|
||||
//Try inject...
|
||||
injector.inject();
|
||||
} catch (Exception ex) {
|
||||
//Failed to inject! Let us revert to the compatibility injector and re-inject.
|
||||
if (injector instanceof EarlyInjector) {
|
||||
PacketEvents.get().getSettings().compatInjector(true);
|
||||
load();
|
||||
injector.inject();
|
||||
PacketEvents.get().getPlugin().getLogger().warning("PacketEvents failed to inject with the Early Injector. Reverting to the Compatibility/Late Injector... This is just a warning, but please report this!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void eject() {
|
||||
injector.eject();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void injectPlayer(Player player) {
|
||||
PlayerInjectEvent injectEvent = new PlayerInjectEvent(player);
|
||||
PacketEvents.get().callEvent(injectEvent);
|
||||
if (!injectEvent.isCancelled()) {
|
||||
injector.injectPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void ejectPlayer(Player player) {
|
||||
PlayerEjectEvent ejectEvent = new PlayerEjectEvent(player);
|
||||
PacketEvents.get().callEvent(ejectEvent);
|
||||
if (!ejectEvent.isCancelled()) {
|
||||
injector.ejectPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasInjected(Player player) {
|
||||
return injector.hasInjected(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendPacket(Object ch, Object rawNMSPacket) {
|
||||
injector.sendPacket(ch, rawNMSPacket);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,683 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.injector;
|
||||
|
||||
public interface LateInjector extends ChannelInjector {
|
||||
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
package io.github.retrooper.packetevents.injector;
|
||||
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.github.retrooper.packetevents.enums.ServerVersion;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
public class PacketHandler {
|
||||
private static final ServerVersion version = PacketEvents.getServerVersion();
|
||||
private final Plugin plugin;
|
||||
|
||||
public PacketHandler(final Plugin plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
public void initTinyProtocol() {
|
||||
if(version.isLowerThan(ServerVersion.v_1_8)) {
|
||||
new PacketHandler_1_7(getPlugin()).initTinyProtocol();
|
||||
}
|
||||
else {
|
||||
new PacketHandler_1_8(getPlugin()).initTinyProtocol();
|
||||
}
|
||||
}
|
||||
|
||||
public final Plugin getPlugin() {
|
||||
return plugin;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
package io.github.retrooper.packetevents.injector;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.github.retrooper.packetevents.event.impl.PacketReceiveEvent;
|
||||
import io.github.retrooper.packetevents.event.impl.PacketSendEvent;
|
||||
import io.github.retrooper.packetevents.tinyprotocol.TinyProtocol7;
|
||||
import net.minecraft.util.io.netty.channel.Channel;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
public class PacketHandler_1_7 {
|
||||
private final Plugin plugin;
|
||||
|
||||
public PacketHandler_1_7(final Plugin plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
public void initTinyProtocol() {
|
||||
new TinyProtocol7(getPlugin()) {
|
||||
@Override
|
||||
public Object onPacketOutAsync(Player receiver, Channel channel, Object packet) {
|
||||
final String packetName = packet.getClass().getSimpleName();
|
||||
final PacketSendEvent packetSendEvent = new PacketSendEvent(receiver, packetName, packet);
|
||||
PacketEvents.getEventManager().callEvent(packetSendEvent);
|
||||
if (!packetSendEvent.isCancelled()) {
|
||||
return packet;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object onPacketInAsync(Player sender, Channel channel, Object packet) {
|
||||
final String packetName = packet.getClass().getSimpleName();
|
||||
final PacketReceiveEvent packetReceiveEvent = new PacketReceiveEvent(sender, packetName, packet);
|
||||
PacketEvents.getEventManager().callEvent(packetReceiveEvent);
|
||||
if (!packetReceiveEvent.isCancelled()) {
|
||||
return packet;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public Plugin getPlugin() {
|
||||
return plugin;
|
||||
}
|
||||
}
|
||||
@@ -1,69 +0,0 @@
|
||||
package io.github.retrooper.packetevents.injector;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.github.retrooper.packetevents.enums.ServerVersion;
|
||||
import io.github.retrooper.packetevents.event.impl.PacketReceiveEvent;
|
||||
import io.github.retrooper.packetevents.event.impl.PacketSendEvent;
|
||||
import io.github.retrooper.packetevents.tinyprotocol.TinyProtocol8;
|
||||
import io.netty.channel.Channel;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
public class PacketHandler_1_8 {
|
||||
private static final ServerVersion version = PacketEvents.getServerVersion();
|
||||
private final Plugin plugin;
|
||||
|
||||
public PacketHandler_1_8(final Plugin plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
public void initTinyProtocol() {
|
||||
new TinyProtocol8(getPlugin()) {
|
||||
@Override
|
||||
public Object onPacketOutAsync(Player receiver, Channel channel, Object packet) {
|
||||
final String packetName = packet.getClass().getSimpleName();
|
||||
final PacketSendEvent packetSendEvent = new PacketSendEvent(receiver, packetName, packet);
|
||||
PacketEvents.getEventManager().callEvent(packetSendEvent);
|
||||
if (!packetSendEvent.isCancelled()) {
|
||||
return packet;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object onPacketInAsync(Player sender, Channel channel, Object packet) {
|
||||
final String packetName = packet.getClass().getSimpleName();
|
||||
final PacketReceiveEvent packetReceiveEvent = new PacketReceiveEvent(sender, packetName, packet);
|
||||
PacketEvents.getEventManager().callEvent(packetReceiveEvent);
|
||||
if (!packetReceiveEvent.isCancelled()) {
|
||||
return packet;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public static String getNetworkManagersFieldName() {
|
||||
//1.8
|
||||
if(version.equals(ServerVersion.v_1_8)) {
|
||||
return "g";
|
||||
}
|
||||
//1.8.3->1.12
|
||||
else if(version.isLowerThan(ServerVersion.v_1_13)) {
|
||||
return "h";
|
||||
}
|
||||
//1.13->1.14
|
||||
else if(version.isLowerThan(ServerVersion.v_1_15)) {
|
||||
return "g";
|
||||
}
|
||||
//1.15
|
||||
else {
|
||||
return "listeningChannels";
|
||||
}
|
||||
}
|
||||
|
||||
public Plugin getPlugin() {
|
||||
return plugin;
|
||||
}
|
||||
}
|
||||
+723
@@ -0,0 +1,723 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.injector.legacy;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import net.minecraft.util.io.netty.channel.ChannelDuplexHandler;
|
||||
import net.minecraft.util.io.netty.channel.ChannelHandlerContext;
|
||||
import net.minecraft.util.io.netty.channel.ChannelPromise;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.logging.Level;
|
||||
|
||||
public class PlayerChannelHandlerLegacy extends ChannelDuplexHandler {
|
||||
/**
|
||||
* Associated player.
|
||||
* This is null until the player is injected.
|
||||
*/
|
||||
public volatile Player player;
|
||||
|
||||
@Override
|
||||
public void channelRead(final ChannelHandlerContext ctx, Object packet) throws Exception {
|
||||
try {
|
||||
packet = PacketEvents.get().getInternalPacketProcessor().read(player, ctx.channel(), packet);
|
||||
if (packet != null) {
|
||||
super.channelRead(ctx, packet);
|
||||
PacketEvents.get().getInternalPacketProcessor().postRead(player, ctx.channel(), packet);
|
||||
}
|
||||
}
|
||||
catch (Throwable t) {
|
||||
PacketEvents.get().getPlugin().getLogger().log(Level.SEVERE, "Unable to handle an incoming packet ", t.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ChannelHandlerContext ctx, Object packet, final ChannelPromise promise) throws Exception {
|
||||
try {
|
||||
packet = PacketEvents.get().getInternalPacketProcessor().write(player, ctx.channel(), packet);
|
||||
if (packet != null) {
|
||||
super.write(ctx, packet, promise);
|
||||
PacketEvents.get().getInternalPacketProcessor().postWrite(player, ctx.channel(), packet);
|
||||
}
|
||||
}
|
||||
catch (Throwable t) {
|
||||
PacketEvents.get().getPlugin().getLogger().log(Level.SEVERE, "Unable to handle an outgoing packet ", t.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
+971
@@ -0,0 +1,971 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.injector.legacy.early;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.github.retrooper.packetevents.injector.EarlyInjector;
|
||||
import io.github.retrooper.packetevents.injector.legacy.PlayerChannelHandlerLegacy;
|
||||
import io.github.retrooper.packetevents.packetwrappers.NMSPacket;
|
||||
import io.github.retrooper.packetevents.packetwrappers.WrappedPacket;
|
||||
import io.github.retrooper.packetevents.utils.list.ListWrapper;
|
||||
import io.github.retrooper.packetevents.utils.nms.NMSUtils;
|
||||
import net.minecraft.util.io.netty.channel.Channel;
|
||||
import net.minecraft.util.io.netty.channel.ChannelFuture;
|
||||
import net.minecraft.util.io.netty.channel.ChannelHandler;
|
||||
import net.minecraft.util.io.netty.channel.ChannelInitializer;
|
||||
import net.minecraft.util.io.netty.channel.socket.SocketChannel;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.PluginDescriptionFile;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Early channel injector for 1.7.10 server versions.
|
||||
* Thank you ViaVersion.
|
||||
* https://github.com/ViaVersion/ViaVersion/tree/master/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaInjector.java
|
||||
*
|
||||
* @author retrooper, Thomazz, ViaVersion
|
||||
* @since 1.8
|
||||
*/
|
||||
public class EarlyChannelInjectorLegacy implements EarlyInjector {
|
||||
private final List<ChannelFuture> injectedFutures = new ArrayList<>();
|
||||
private final List<Map<Field, Object>> injectedLists = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public void inject() {
|
||||
try {
|
||||
Object serverConnection = NMSUtils.getMinecraftServerConnection();
|
||||
for (Field field : serverConnection.getClass().getDeclaredFields()) {
|
||||
field.setAccessible(true);
|
||||
Object value = null;
|
||||
try {
|
||||
value = field.get(serverConnection);
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (value instanceof List) {
|
||||
//Get the list.
|
||||
List listWrapper = new ListWrapper((List) value) {
|
||||
@Override
|
||||
public void processAdd(Object o) {
|
||||
if (o instanceof ChannelFuture) {
|
||||
try {
|
||||
injectChannelFuture((ChannelFuture) o);
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
HashMap<Field, Object> map = new HashMap<>();
|
||||
map.put(field, serverConnection);
|
||||
injectedLists.add(map);
|
||||
|
||||
field.set(serverConnection, listWrapper);
|
||||
|
||||
synchronized (listWrapper) {
|
||||
for (Object serverChannel : (List) value) {
|
||||
//Is this the server channel future list?
|
||||
if (serverChannel instanceof ChannelFuture) {
|
||||
//Yes it is...
|
||||
injectChannelFuture((ChannelFuture) serverChannel);
|
||||
} else {
|
||||
break;//Wrong list
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
PacketEvents.get().getPlugin().getLogger().severe("PacketEvents failed to inject!");
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
//Player channels might have been registered already. Let us add our handlers. We are a little late though.
|
||||
//This only happens when you join extremely early on older versions of minecraft.
|
||||
List<Object> networkManagers = NMSUtils.getNetworkManagers();
|
||||
synchronized (networkManagers) {
|
||||
for (Object networkManager : networkManagers) {
|
||||
WrappedPacket networkManagerWrapper = new WrappedPacket(new NMSPacket(networkManager));
|
||||
Channel channel = (Channel) networkManagerWrapper.readObject(0, NMSUtils.nettyChannelClass);
|
||||
if (channel == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (channel.pipeline().get("packet_handler") != null) {
|
||||
channel.pipeline().addBefore("packet_handler", PacketEvents.get().getHandlerName(), new PlayerChannelHandlerLegacy());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void injectChannelFuture(ChannelFuture channelFuture) {
|
||||
List<String> channelHandlerNames = channelFuture.channel().pipeline().names();
|
||||
ChannelHandler bootstrapAcceptor = null;
|
||||
Field bootstrapAcceptorField = null;
|
||||
for (String handlerName : channelHandlerNames) {
|
||||
ChannelHandler handler = channelFuture.channel().pipeline().get(handlerName);
|
||||
try {
|
||||
bootstrapAcceptorField = handler.getClass().getDeclaredField("childHandler");
|
||||
bootstrapAcceptorField.setAccessible(true);
|
||||
bootstrapAcceptorField.get(handler);
|
||||
bootstrapAcceptor = handler;
|
||||
} catch (Exception ex) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (bootstrapAcceptor == null) {
|
||||
bootstrapAcceptor = channelFuture.channel().pipeline().first();
|
||||
}
|
||||
|
||||
ChannelInitializer<?> oldChannelInitializer = null;
|
||||
try {
|
||||
oldChannelInitializer = (ChannelInitializer<?>) bootstrapAcceptorField.get(bootstrapAcceptor);
|
||||
|
||||
ChannelInitializer<?> channelInitializer = new PEChannelInitializerLegacy(oldChannelInitializer);
|
||||
|
||||
//Replace the old channel initializer with our own.
|
||||
bootstrapAcceptorField.setAccessible(true);
|
||||
bootstrapAcceptorField.set(bootstrapAcceptor, channelInitializer);
|
||||
|
||||
injectedFutures.add(channelFuture);
|
||||
} catch (IllegalAccessException e) {
|
||||
ClassLoader cl = bootstrapAcceptor.getClass().getClassLoader();
|
||||
if (cl.getClass().getName().equals("org.bukkit.plugin.java.PluginClassLoader")) {
|
||||
PluginDescriptionFile yaml = null;
|
||||
try {
|
||||
yaml = (PluginDescriptionFile) PluginDescriptionFile.class.getDeclaredField("description").get(cl);
|
||||
} catch (IllegalAccessException | NoSuchFieldException e2) {
|
||||
e2.printStackTrace();
|
||||
}
|
||||
throw new IllegalStateException("PacketEvents failed to inject, because of " + bootstrapAcceptor.getClass().getName() + ", you might want to try running without " + yaml.getName() + "?");
|
||||
} else {
|
||||
throw new IllegalStateException("PacketEvents failed to find core component 'childHandler', please check your plugins. issue: " + bootstrapAcceptor.getClass().getName());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void eject() {
|
||||
Field childHandlerField = null;
|
||||
for (ChannelFuture future : injectedFutures) {
|
||||
List<String> names = future.channel().pipeline().names();
|
||||
ChannelHandler bootstrapAcceptor = null;
|
||||
// Pick best
|
||||
for (String name : names) {
|
||||
try {
|
||||
ChannelHandler handler = future.channel().pipeline().get(name);
|
||||
if (childHandlerField == null) {
|
||||
childHandlerField = handler.getClass().getDeclaredField("childHandler");
|
||||
childHandlerField.setAccessible(true);
|
||||
}
|
||||
|
||||
ChannelInitializer<SocketChannel> oldInit = (ChannelInitializer<SocketChannel>) childHandlerField.get(handler);
|
||||
if (oldInit instanceof PEChannelInitializerLegacy) {
|
||||
bootstrapAcceptor = handler;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Not this one
|
||||
}
|
||||
}
|
||||
// Default to first
|
||||
if (bootstrapAcceptor == null) {
|
||||
bootstrapAcceptor = future.channel().pipeline().first();
|
||||
}
|
||||
|
||||
try {
|
||||
ChannelInitializer<SocketChannel> oldInit = (ChannelInitializer<SocketChannel>) childHandlerField.get(bootstrapAcceptor);
|
||||
if (oldInit instanceof PEChannelInitializerLegacy) {
|
||||
childHandlerField.setAccessible(true);
|
||||
childHandlerField.set(bootstrapAcceptor, ((PEChannelInitializerLegacy) oldInit).getOldChannelInitializer());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
PacketEvents.get().getPlugin().getLogger().severe("PacketEvents failed to eject the injection handler! Please reboot!");
|
||||
}
|
||||
}
|
||||
injectedFutures.clear();
|
||||
|
||||
for (Map<Field, Object> map : injectedLists) {
|
||||
try {
|
||||
for (Field key : map.keySet()) {
|
||||
key.setAccessible(true);
|
||||
Object o = map.get(key);
|
||||
if (o instanceof ListWrapper) {
|
||||
key.set(o, ((ListWrapper) o).getOriginalList());
|
||||
}
|
||||
}
|
||||
|
||||
} catch (IllegalAccessException e) {
|
||||
PacketEvents.get().getPlugin().getLogger().severe("PacketEvents failed to eject the injection handler! Please reboot!!");
|
||||
}
|
||||
}
|
||||
|
||||
injectedLists.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void injectPlayer(Player player) {
|
||||
Object channel = PacketEvents.get().getPlayerUtils().getChannel(player);
|
||||
if (channel != null) {
|
||||
updatePlayerObject(player, channel);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void ejectPlayer(Player player) {
|
||||
Object channel = PacketEvents.get().getPlayerUtils().getChannel(player);
|
||||
if (channel != null) {
|
||||
Channel chnl = (Channel) channel;
|
||||
try {
|
||||
chnl.pipeline().remove(PacketEvents.get().getHandlerName());
|
||||
} catch (Exception ex) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasInjected(Player player) {
|
||||
Object channel = PacketEvents.get().getPlayerUtils().getChannel(player);
|
||||
if (channel == null) {
|
||||
return false;
|
||||
}
|
||||
PlayerChannelHandlerLegacy handler = getHandler(channel);
|
||||
return handler != null && handler.player != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendPacket(Object ch, Object rawNMSPacket) {
|
||||
Channel channel = (Channel) ch;
|
||||
channel.writeAndFlush(rawNMSPacket);
|
||||
}
|
||||
|
||||
private PlayerChannelHandlerLegacy getHandler(Object rawChannel) {
|
||||
Channel channel = (Channel) rawChannel;
|
||||
ChannelHandler handler = channel.pipeline().get(PacketEvents.get().getHandlerName());
|
||||
if (handler instanceof PlayerChannelHandlerLegacy) {
|
||||
return (PlayerChannelHandlerLegacy) handler;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updatePlayerObject(Player player, Object rawChannel) {
|
||||
PlayerChannelHandlerLegacy handler = getHandler(rawChannel);
|
||||
if (handler != null) {
|
||||
handler.player = player;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBound() {
|
||||
try {
|
||||
Object connection = NMSUtils.getMinecraftServerConnection();
|
||||
if (connection == null) {
|
||||
return false;
|
||||
}
|
||||
for (Field field : connection.getClass().getDeclaredFields()) {
|
||||
field.setAccessible(true);
|
||||
final Object value = field.get(connection);
|
||||
if (value instanceof List) {
|
||||
// Inject the list
|
||||
synchronized (value) {
|
||||
for (Object o : (List) value) {
|
||||
if (o instanceof ChannelFuture) {
|
||||
return true;
|
||||
} else {
|
||||
break; // not the right list.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
+714
@@ -0,0 +1,714 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.injector.legacy.early;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.github.retrooper.packetevents.injector.legacy.PlayerChannelHandlerLegacy;
|
||||
import io.github.retrooper.packetevents.utils.reflection.Reflection;
|
||||
import net.minecraft.util.io.netty.channel.ChannelInitializer;
|
||||
import net.minecraft.util.io.netty.channel.socket.SocketChannel;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class PEChannelInitializerLegacy extends ChannelInitializer<SocketChannel> {
|
||||
private final ChannelInitializer<?> oldChannelInitializer;
|
||||
private Method initChannelMethod;
|
||||
|
||||
public PEChannelInitializerLegacy(ChannelInitializer<?> oldChannelInitializer) {
|
||||
this.oldChannelInitializer = oldChannelInitializer;
|
||||
load();
|
||||
}
|
||||
|
||||
private void load() {
|
||||
initChannelMethod = Reflection.getMethod(oldChannelInitializer.getClass(), "initChannel", 0);
|
||||
}
|
||||
|
||||
public ChannelInitializer<?> getOldChannelInitializer() {
|
||||
return oldChannelInitializer;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initChannel(SocketChannel socketChannel) throws Exception {
|
||||
initChannelMethod.invoke(oldChannelInitializer, socketChannel);
|
||||
PlayerChannelHandlerLegacy channelHandler = new PlayerChannelHandlerLegacy();
|
||||
if (socketChannel.pipeline().get("packet_handler") != null) {
|
||||
socketChannel.pipeline().addBefore("packet_handler", PacketEvents.get().getHandlerName(), channelHandler);
|
||||
}
|
||||
}
|
||||
}
|
||||
+731
@@ -0,0 +1,731 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.injector.legacy.late;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.github.retrooper.packetevents.injector.legacy.PlayerChannelHandlerLegacy;
|
||||
import io.github.retrooper.packetevents.injector.LateInjector;
|
||||
import net.minecraft.util.io.netty.channel.Channel;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class LateChannelInjectorLegacy implements LateInjector {
|
||||
@Override
|
||||
public void inject() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void eject() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void injectPlayer(Player player) {
|
||||
PlayerChannelHandlerLegacy playerChannelHandlerLegacy = new PlayerChannelHandlerLegacy();
|
||||
playerChannelHandlerLegacy.player = player;
|
||||
Channel channel = (Channel) PacketEvents.get().getPlayerUtils().getChannel(player);
|
||||
channel.pipeline().addBefore("packet_handler", PacketEvents.get().getHandlerName(), playerChannelHandlerLegacy);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void ejectPlayer(Player player) {
|
||||
Object channel = PacketEvents.get().getPlayerUtils().getChannel(player);
|
||||
if (channel != null) {
|
||||
Channel chnl = (Channel) channel;
|
||||
try {
|
||||
chnl.pipeline().remove(PacketEvents.get().getHandlerName());
|
||||
}
|
||||
catch (Exception ex) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasInjected(Player player) {
|
||||
Channel channel = (Channel) PacketEvents.get().getPlayerUtils().getChannel(player);
|
||||
return channel.pipeline().get(PacketEvents.get().getHandlerName()) != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendPacket(Object rawChannel, Object packet) {
|
||||
Channel channel = (Channel) rawChannel;
|
||||
channel.pipeline().writeAndFlush(packet);
|
||||
}
|
||||
}
|
||||
+723
@@ -0,0 +1,723 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.injector.modern;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.netty.channel.ChannelDuplexHandler;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelPromise;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.logging.Level;
|
||||
|
||||
public class PlayerChannelHandlerModern extends ChannelDuplexHandler {
|
||||
/**
|
||||
* Associated player.
|
||||
* This is null until we inject the player.
|
||||
*/
|
||||
public volatile Player player;
|
||||
|
||||
@Override
|
||||
public void channelRead(final ChannelHandlerContext ctx, Object packet) throws Exception {
|
||||
try {
|
||||
packet = PacketEvents.get().getInternalPacketProcessor().read(player, ctx.channel(), packet);
|
||||
if (packet != null) {
|
||||
super.channelRead(ctx, packet);
|
||||
PacketEvents.get().getInternalPacketProcessor().postRead(player, ctx.channel(), packet);
|
||||
}
|
||||
}
|
||||
catch (Throwable t) {
|
||||
PacketEvents.get().getPlugin().getLogger().log(Level.SEVERE, "Unable to handle an incoming packet ", t.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ChannelHandlerContext ctx, Object packet, final ChannelPromise promise) throws Exception {
|
||||
try {
|
||||
packet = PacketEvents.get().getInternalPacketProcessor().write(player, ctx.channel(), packet);
|
||||
if (packet != null) {
|
||||
super.write(ctx, packet, promise);
|
||||
PacketEvents.get().getInternalPacketProcessor().postWrite(player, ctx.channel(), packet);
|
||||
}
|
||||
}
|
||||
catch (Throwable t) {
|
||||
PacketEvents.get().getPlugin().getLogger().log(Level.SEVERE, "Unable to handle an outgoing packet ", t.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
+964
@@ -0,0 +1,964 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.injector.modern.early;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.github.retrooper.packetevents.injector.EarlyInjector;
|
||||
import io.github.retrooper.packetevents.injector.modern.PlayerChannelHandlerModern;
|
||||
import io.github.retrooper.packetevents.packetwrappers.NMSPacket;
|
||||
import io.github.retrooper.packetevents.packetwrappers.WrappedPacket;
|
||||
import io.github.retrooper.packetevents.utils.list.ListWrapper;
|
||||
import io.github.retrooper.packetevents.utils.nms.NMSUtils;
|
||||
import io.netty.channel.Channel;
|
||||
import io.netty.channel.ChannelFuture;
|
||||
import io.netty.channel.ChannelHandler;
|
||||
import io.netty.channel.ChannelInitializer;
|
||||
import io.netty.channel.socket.SocketChannel;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.PluginDescriptionFile;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Early channel injector for all server versions higher than 1.7.10.
|
||||
* Thank you ViaVersion.
|
||||
* https://github.com/ViaVersion/ViaVersion/tree/master/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaInjector.java
|
||||
*
|
||||
* @author retrooper, Thomazz, ViaVersion
|
||||
* @since 1.8
|
||||
*/
|
||||
public class EarlyChannelInjectorModern implements EarlyInjector {
|
||||
private final List<ChannelFuture> injectedFutures = new ArrayList<>();
|
||||
private final List<Map<Field, Object>> injectedLists = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public void inject() {
|
||||
try {
|
||||
Object serverConnection = NMSUtils.getMinecraftServerConnection();
|
||||
for (Field field : serverConnection.getClass().getDeclaredFields()) {
|
||||
field.setAccessible(true);
|
||||
Object value = null;
|
||||
try {
|
||||
value = field.get(serverConnection);
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (value instanceof List) {
|
||||
//Get the list.
|
||||
List listWrapper = new ListWrapper((List) value) {
|
||||
@Override
|
||||
public void processAdd(Object o) {
|
||||
if (o instanceof ChannelFuture) {
|
||||
try {
|
||||
injectChannelFuture((ChannelFuture) o);
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
HashMap<Field, Object> map = new HashMap<>();
|
||||
map.put(field, serverConnection);
|
||||
injectedLists.add(map);
|
||||
|
||||
field.set(serverConnection, listWrapper);
|
||||
|
||||
synchronized (listWrapper) {
|
||||
for (Object serverChannel : (List) value) {
|
||||
//Is this the server channel future list?
|
||||
if (serverChannel instanceof ChannelFuture) {
|
||||
//Yes it is...
|
||||
injectChannelFuture((ChannelFuture) serverChannel);
|
||||
} else {
|
||||
break;//Wrong list
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
throw new IllegalStateException("PacketEvents failed to inject!", ex);
|
||||
}
|
||||
|
||||
//Player channels might have been registered already. Let us add our handlers. We are a little late though.
|
||||
//This only happens when you join extremely early on older versions of minecraft.
|
||||
List<Object> networkManagers = NMSUtils.getNetworkManagers();
|
||||
synchronized (networkManagers) {
|
||||
for (Object networkManager : networkManagers) {
|
||||
WrappedPacket networkManagerWrapper = new WrappedPacket(new NMSPacket(networkManager));
|
||||
Channel channel = (Channel) networkManagerWrapper.readObject(0, NMSUtils.nettyChannelClass);
|
||||
if (channel == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (channel.pipeline().get("packet_handler") != null) {
|
||||
channel.pipeline().addBefore("packet_handler", PacketEvents.get().getHandlerName(), new PlayerChannelHandlerModern());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void injectChannelFuture(ChannelFuture channelFuture) {
|
||||
List<String> channelHandlerNames = channelFuture.channel().pipeline().names();
|
||||
ChannelHandler bootstrapAcceptor = null;
|
||||
Field bootstrapAcceptorField = null;
|
||||
for (String handlerName : channelHandlerNames) {
|
||||
ChannelHandler handler = channelFuture.channel().pipeline().get(handlerName);
|
||||
try {
|
||||
bootstrapAcceptorField = handler.getClass().getDeclaredField("childHandler");
|
||||
bootstrapAcceptorField.setAccessible(true);
|
||||
bootstrapAcceptorField.get(handler);
|
||||
bootstrapAcceptor = handler;
|
||||
} catch (Exception ignored) {}
|
||||
}
|
||||
|
||||
if (bootstrapAcceptor == null) {
|
||||
bootstrapAcceptor = channelFuture.channel().pipeline().first();
|
||||
}
|
||||
|
||||
ChannelInitializer<?> oldChannelInitializer;
|
||||
try {
|
||||
oldChannelInitializer = (ChannelInitializer<?>) bootstrapAcceptorField.get(bootstrapAcceptor);
|
||||
|
||||
ChannelInitializer<?> channelInitializer = new PEChannelInitializerModern(oldChannelInitializer);
|
||||
|
||||
//Replace the old channel initializer with our own.
|
||||
bootstrapAcceptorField.setAccessible(true);
|
||||
bootstrapAcceptorField.set(bootstrapAcceptor, channelInitializer);
|
||||
injectedFutures.add(channelFuture);
|
||||
} catch (IllegalAccessException e) {
|
||||
ClassLoader cl = bootstrapAcceptor.getClass().getClassLoader();
|
||||
if (cl.getClass().getName().equals("org.bukkit.plugin.java.PluginClassLoader")) {
|
||||
PluginDescriptionFile yaml = null;
|
||||
try {
|
||||
yaml = (PluginDescriptionFile) PluginDescriptionFile.class.getDeclaredField("description").get(cl);
|
||||
} catch (IllegalAccessException | NoSuchFieldException e2) {
|
||||
e2.printStackTrace();
|
||||
}
|
||||
throw new IllegalStateException("PacketEvents failed to inject, because of " + bootstrapAcceptor.getClass().getName() + ", you might want to try running without " + yaml.getName() + "?");
|
||||
} else {
|
||||
throw new IllegalStateException("PacketEvents failed to find core component 'childHandler', please check your plugins. issue: " + bootstrapAcceptor.getClass().getName());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void eject() {
|
||||
Field childHandlerField = null;
|
||||
for (ChannelFuture future : injectedFutures) {
|
||||
List<String> names = future.channel().pipeline().names();
|
||||
ChannelHandler bootstrapAcceptor = null;
|
||||
// Pick best
|
||||
for (String name : names) {
|
||||
try {
|
||||
ChannelHandler handler = future.channel().pipeline().get(name);
|
||||
if (childHandlerField == null) {
|
||||
childHandlerField = handler.getClass().getDeclaredField("childHandler");
|
||||
childHandlerField.setAccessible(true);
|
||||
}
|
||||
|
||||
ChannelInitializer<SocketChannel> oldInit = (ChannelInitializer<SocketChannel>) childHandlerField.get(handler);
|
||||
if (oldInit instanceof PEChannelInitializerModern) {
|
||||
bootstrapAcceptor = handler;
|
||||
}
|
||||
} catch (Exception ignored) {
|
||||
// Not this one
|
||||
}
|
||||
}
|
||||
// Default to first
|
||||
if (bootstrapAcceptor == null) {
|
||||
bootstrapAcceptor = future.channel().pipeline().first();
|
||||
}
|
||||
|
||||
try {
|
||||
ChannelInitializer<SocketChannel> oldInit = (ChannelInitializer<SocketChannel>) childHandlerField.get(bootstrapAcceptor);
|
||||
if (oldInit instanceof PEChannelInitializerModern) {
|
||||
childHandlerField.setAccessible(true);
|
||||
childHandlerField.set(bootstrapAcceptor, ((PEChannelInitializerModern) oldInit).getOldChannelInitializer());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
PacketEvents.get().getPlugin().getLogger().severe("PacketEvents failed to eject the injection handler! Please reboot!");
|
||||
}
|
||||
}
|
||||
injectedFutures.clear();
|
||||
|
||||
for (Map<Field, Object> map : injectedLists) {
|
||||
try {
|
||||
for (Field key : map.keySet()) {
|
||||
key.setAccessible(true);
|
||||
Object o = map.get(key);
|
||||
if (o instanceof ListWrapper) {
|
||||
key.set(o, ((ListWrapper) o).getOriginalList());
|
||||
}
|
||||
}
|
||||
|
||||
} catch (IllegalAccessException e) {
|
||||
PacketEvents.get().getPlugin().getLogger().severe("PacketEvents failed to eject the injection handler! Please reboot!!");
|
||||
}
|
||||
}
|
||||
|
||||
injectedLists.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void injectPlayer(Player player) {
|
||||
Object channel = PacketEvents.get().getPlayerUtils().getChannel(player);
|
||||
if (channel != null) {
|
||||
updatePlayerObject(player, channel);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void ejectPlayer(Player player) {
|
||||
Object channel = PacketEvents.get().getPlayerUtils().getChannel(player);
|
||||
if (channel != null) {
|
||||
Channel chnl = (Channel) channel;
|
||||
try {
|
||||
chnl.pipeline().remove(PacketEvents.get().getHandlerName());
|
||||
} catch (Exception ignored) {}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasInjected(Player player) {
|
||||
Object channel = PacketEvents.get().getPlayerUtils().getChannel(player);
|
||||
if (channel == null) {
|
||||
return false;
|
||||
}
|
||||
PlayerChannelHandlerModern handler = getHandler(channel);
|
||||
return handler != null && handler.player != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendPacket(Object ch, Object rawNMSPacket) {
|
||||
Channel channel = (Channel) ch;
|
||||
channel.writeAndFlush(rawNMSPacket);
|
||||
}
|
||||
|
||||
private PlayerChannelHandlerModern getHandler(Object rawChannel) {
|
||||
Channel channel = (Channel) rawChannel;
|
||||
ChannelHandler handler = channel.pipeline().get(PacketEvents.get().getHandlerName());
|
||||
if (handler instanceof PlayerChannelHandlerModern) {
|
||||
return (PlayerChannelHandlerModern) handler;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updatePlayerObject(Player player, Object rawChannel) {
|
||||
PlayerChannelHandlerModern handler = getHandler(rawChannel);
|
||||
if (handler != null) {
|
||||
handler.player = player;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBound() {
|
||||
try {
|
||||
Object connection = NMSUtils.getMinecraftServerConnection();
|
||||
if (connection == null) {
|
||||
return false;
|
||||
}
|
||||
for (Field field : connection.getClass().getDeclaredFields()) {
|
||||
field.setAccessible(true);
|
||||
final Object value = field.get(connection);
|
||||
if (value instanceof List) {
|
||||
// Inject the list
|
||||
synchronized (value) {
|
||||
for (Object o : (List) value) {
|
||||
if (o instanceof ChannelFuture) {
|
||||
return true;
|
||||
} else {
|
||||
break; // not the right list.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception ignored) {}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
+714
@@ -0,0 +1,714 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.injector.modern.early;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.github.retrooper.packetevents.injector.modern.PlayerChannelHandlerModern;
|
||||
import io.github.retrooper.packetevents.utils.reflection.Reflection;
|
||||
import io.netty.channel.ChannelInitializer;
|
||||
import io.netty.channel.socket.SocketChannel;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class PEChannelInitializerModern extends ChannelInitializer<SocketChannel> {
|
||||
private final ChannelInitializer<?> oldChannelInitializer;
|
||||
private Method initChannelMethod;
|
||||
|
||||
public PEChannelInitializerModern(ChannelInitializer<?> oldChannelInitializer) {
|
||||
this.oldChannelInitializer = oldChannelInitializer;
|
||||
load();
|
||||
}
|
||||
|
||||
private void load() {
|
||||
initChannelMethod = Reflection.getMethod(oldChannelInitializer.getClass(), "initChannel", 0);
|
||||
}
|
||||
|
||||
public ChannelInitializer<?> getOldChannelInitializer() {
|
||||
return oldChannelInitializer;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initChannel(SocketChannel socketChannel) throws Exception {
|
||||
initChannelMethod.invoke(oldChannelInitializer, socketChannel);
|
||||
PlayerChannelHandlerModern channelHandler = new PlayerChannelHandlerModern();
|
||||
if (socketChannel.pipeline().get("packet_handler") != null) {
|
||||
socketChannel.pipeline().addBefore("packet_handler", PacketEvents.get().getHandlerName(), channelHandler);
|
||||
}
|
||||
}
|
||||
}
|
||||
+731
@@ -0,0 +1,731 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.injector.modern.late;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.github.retrooper.packetevents.injector.modern.PlayerChannelHandlerModern;
|
||||
import io.github.retrooper.packetevents.injector.LateInjector;
|
||||
import io.netty.channel.Channel;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class LateChannelInjectorModern implements LateInjector {
|
||||
@Override
|
||||
public void inject() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void eject() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void injectPlayer(Player player) {
|
||||
PlayerChannelHandlerModern playerChannelHandlerModern = new PlayerChannelHandlerModern();
|
||||
playerChannelHandlerModern.player = player;
|
||||
Channel channel = (Channel) PacketEvents.get().getPlayerUtils().getChannel(player);
|
||||
channel.pipeline().addBefore("packet_handler", PacketEvents.get().getHandlerName(), playerChannelHandlerModern);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void ejectPlayer(Player player) {
|
||||
Object channel = PacketEvents.get().getPlayerUtils().getChannel(player);
|
||||
if (channel != null) {
|
||||
Channel chnl = (Channel) channel;
|
||||
try {
|
||||
chnl.pipeline().remove(PacketEvents.get().getHandlerName());
|
||||
}
|
||||
catch (Exception ex) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasInjected(Player player) {
|
||||
Channel channel = (Channel) PacketEvents.get().getPlayerUtils().getChannel(player);
|
||||
return channel.pipeline().get(PacketEvents.get().getHandlerName()) != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendPacket(Object rawChannel, Object packet) {
|
||||
Channel channel = (Channel) rawChannel;
|
||||
channel.pipeline().writeAndFlush(packet);
|
||||
}
|
||||
}
|
||||
@@ -1,81 +0,0 @@
|
||||
package io.github.retrooper.packetevents.packet;
|
||||
|
||||
|
||||
public abstract class Packet {
|
||||
public static class Client {
|
||||
private static final String c = "PacketPlayIn";
|
||||
|
||||
@Deprecated
|
||||
public static final String FLYING = c + "Flying";
|
||||
|
||||
public static final String POSITION = c + "Position";
|
||||
|
||||
public static final String POSITION_LOOK = c + "PositionLook";
|
||||
|
||||
public static final String LOOK = c + "Look";
|
||||
public static final String CLIENT_COMMAND = c + "ClientCommand";
|
||||
|
||||
public static final String TRANSACTION = c + "Transaction";
|
||||
public static final String BLOCK_DIG = c + "BlockDig";
|
||||
public static final String ENTITY_ACTION = c + "EntityAction";
|
||||
public static final String USE_ENTITY = c + "UseEntity";
|
||||
public static final String WINDOW_CLICK = c + "WindowClick";
|
||||
public static final String STEER_VEHICLE = c + "SteerVehicle";
|
||||
public static final String CUSTOM_PAYLOAD = c + "CustomPayload";
|
||||
public static final String ARM_ANIMATION = c + "ArmAnimation";
|
||||
public static final String BLOCK_PLACE = c + "BlockPlace";
|
||||
public static final String ABILITIES = c + "Abilities";
|
||||
public static final String HELD_ITEM_SLOT = c + "HeldItemSlot";
|
||||
public static final String CLOSE_WINDOW = c + "CloseWindow";
|
||||
public static final String TAB_COMPLETE = c + "TabComplete";
|
||||
public static final String CHAT = c + "Chat";
|
||||
public static final String SET_CREATIVE_SLOT = c + "SetCreativeSlot";
|
||||
|
||||
public static final String KEEP_ALIVE = c + "KeepAlive";
|
||||
}
|
||||
|
||||
public static class Server {
|
||||
private static final String s = "PacketPlayOut";
|
||||
|
||||
public static final String ANIMATION = s + "Animation";
|
||||
public static final String KEEP_ALIVE = s + "KeepAlive";
|
||||
public static final String CHAT = s + "Chat";
|
||||
public static final String POSITION = s + "Position";
|
||||
public static final String TRANSACTION = s + "Transaction";
|
||||
public static final String NAMED_ENTITY_SPAWN = s + "NamedEntitySpawn";
|
||||
public static final String SPAWN_ENTITY_LIVING = s + "SpawnEntityLiving";
|
||||
public static final String SPAWN_ENTITY = s + "SpawnEntity";
|
||||
public static final String CUSTOM_PAYLOAD = s + "CustomPayload";
|
||||
public static final String ABILITIES = s + "Abilities";
|
||||
public static final String ENTITY_METADATA = s + "EntityMetadata";
|
||||
public static final String ENTITY_VELOCITY = s + "EntityVelocity";
|
||||
public static final String ENTITY_DESTROY = s + "EntityDestroy";
|
||||
public static final String ENTITY_HEAD_ROTATION = s + "EntityHeadRotation";
|
||||
public static final String BLOCK_CHANGE = s + "BlockChange";
|
||||
public static final String CLOSE_WINDOW = s + "CloseWindow";
|
||||
public static final String HELD_ITEM_SLOT = s + "HeldItemSlot";
|
||||
public static final String TAB_COMPLETE = s + "TabComplete";
|
||||
public static final String RESPAWN = s + "Respawn";
|
||||
public static final String WORLD_PARTICLES = s + "WorldParticles";
|
||||
public static final String COMMANDS = s + "Commands";
|
||||
public static final String OPEN_WINDOW = s + "OpenWindow";
|
||||
public static final String LOGIN = s + "Login";
|
||||
public static final String SERVER_DIFFICULTY = s + "ServerDifficulty";
|
||||
}
|
||||
|
||||
public static class Login {
|
||||
public static final String HANDSHAKE = "PacketHandshakingInSetProtocol";
|
||||
public static final String PING = "PacketStatusInPing";
|
||||
public static final String START = "PacketStatusInStart";
|
||||
public static final String SUCCESS = "PacketLoginOutSuccess";
|
||||
}
|
||||
|
||||
public static boolean isInstanceOf(String fatherPacket, String childPacket) {
|
||||
if (fatherPacket.equals(Client.FLYING) && childPacket.equals(Client.POSITION) || childPacket.equals(Client.POSITION_LOOK) || childPacket.equals(Client.LOOK)) {
|
||||
return true;
|
||||
}
|
||||
return fatherPacket.equals(childPacket);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,687 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.packettype;
|
||||
|
||||
/**
|
||||
* @author retrooper
|
||||
* @since 1.8
|
||||
*/
|
||||
public enum PacketState {
|
||||
STATUS, HANDSHAKING, LOGIN, PLAY
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,987 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.packettype;
|
||||
|
||||
import io.github.retrooper.packetevents.PacketEvents;
|
||||
import io.github.retrooper.packetevents.utils.nms.NMSUtils;
|
||||
import io.github.retrooper.packetevents.utils.reflection.SubclassUtil;
|
||||
import io.github.retrooper.packetevents.utils.server.ServerVersion;
|
||||
|
||||
public class PacketTypeClasses {
|
||||
public static void load() {
|
||||
//STATUS
|
||||
PacketTypeClasses.Status.Client.load();
|
||||
PacketTypeClasses.Status.Server.load();
|
||||
//HANDSHAKING
|
||||
PacketTypeClasses.Handshaking.Client.load();
|
||||
//LOGIN
|
||||
PacketTypeClasses.Login.Client.load();
|
||||
PacketTypeClasses.Login.Server.load();
|
||||
//PLAY
|
||||
PacketTypeClasses.Play.Client.load();
|
||||
PacketTypeClasses.Play.Server.load();
|
||||
}
|
||||
|
||||
public static class Status {
|
||||
public static class Client {
|
||||
public static Class<?> START, PING;
|
||||
|
||||
public static void load() {
|
||||
Client.START = NMSUtils.getNMSClassWithoutException("PacketStatusInStart");
|
||||
Client.PING = NMSUtils.getNMSClassWithoutException("PacketStatusInPing");
|
||||
}
|
||||
}
|
||||
|
||||
public static class Server {
|
||||
public static Class<?> PONG, SERVER_INFO;
|
||||
|
||||
public static void load() {
|
||||
Server.PONG = NMSUtils.getNMSClassWithoutException("PacketStatusOutPong");
|
||||
Server.SERVER_INFO = NMSUtils.getNMSClassWithoutException("PacketStatusOutServerInfo");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class Handshaking {
|
||||
public static class Client {
|
||||
public static Class<?> SET_PROTOCOL;
|
||||
|
||||
public static void load() {
|
||||
Handshaking.Client.SET_PROTOCOL = NMSUtils.getNMSClassWithoutException("PacketHandshakingInSetProtocol");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class Login {
|
||||
public static class Client {
|
||||
public static Class<?> CUSTOM_PAYLOAD, START, ENCRYPTION_BEGIN;
|
||||
|
||||
public static void load() {
|
||||
//In and Out custom payload login packets have been here since 1.13
|
||||
if (PacketEvents.get().getServerUtils().getVersion().isNewerThanOrEquals(ServerVersion.v_1_13)) {
|
||||
Client.CUSTOM_PAYLOAD = NMSUtils.getNMSClassWithoutException("PacketLoginInCustomPayload");
|
||||
}
|
||||
Client.START = NMSUtils.getNMSClassWithoutException("PacketLoginInStart");
|
||||
Client.ENCRYPTION_BEGIN = NMSUtils.getNMSClassWithoutException("PacketLoginInEncryptionBegin");
|
||||
}
|
||||
}
|
||||
|
||||
public static class Server {
|
||||
public static Class<?> CUSTOM_PAYLOAD, DISCONNECT, ENCRYPTION_BEGIN, SUCCESS, SET_COMPRESSION;
|
||||
|
||||
public static void load() {
|
||||
//In and Out custom payload login packets have been here since 1.13
|
||||
if (PacketEvents.get().getServerUtils().getVersion().isNewerThanOrEquals(ServerVersion.v_1_13)) {
|
||||
Server.CUSTOM_PAYLOAD = NMSUtils.getNMSClassWithoutException("PacketLoginOutCustomPayload");
|
||||
}
|
||||
Server.DISCONNECT = NMSUtils.getNMSClassWithoutException("PacketLoginOutDisconnect");
|
||||
Server.ENCRYPTION_BEGIN = NMSUtils.getNMSClassWithoutException("PacketLoginOutEncryptionBegin");
|
||||
Server.SUCCESS = NMSUtils.getNMSClassWithoutException("PacketLoginOutSuccess");
|
||||
if (PacketEvents.get().getServerUtils().getVersion().isNewerThan(ServerVersion.v_1_7_10)) {
|
||||
Server.SET_COMPRESSION = NMSUtils.getNMSClassWithoutException("PacketLoginOutSetCompression");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class Play {
|
||||
public static class Client {
|
||||
private static final String PREFIX = "PacketPlayIn";
|
||||
public static Class<?> FLYING, POSITION, POSITION_LOOK, LOOK, CLIENT_COMMAND,
|
||||
TRANSACTION, BLOCK_DIG, ENTITY_ACTION, USE_ENTITY,
|
||||
WINDOW_CLICK, STEER_VEHICLE, CUSTOM_PAYLOAD, ARM_ANIMATION,
|
||||
BLOCK_PLACE, USE_ITEM, ABILITIES, HELD_ITEM_SLOT,
|
||||
CLOSE_WINDOW, TAB_COMPLETE, CHAT, SET_CREATIVE_SLOT,
|
||||
KEEP_ALIVE, SETTINGS, ENCHANT_ITEM, TELEPORT_ACCEPT,
|
||||
TILE_NBT_QUERY, DIFFICULTY_CHANGE, B_EDIT, ENTITY_NBT_QUERY,
|
||||
JIGSAW_GENERATE, DIFFICULTY_LOCK, VEHICLE_MOVE, BOAT_MOVE, PICK_ITEM,
|
||||
AUTO_RECIPE, RECIPE_DISPLAYED, ITEM_NAME, RESOURCE_PACK_STATUS,
|
||||
ADVANCEMENTS, TR_SEL, BEACON, SET_COMMAND_BLOCK,
|
||||
SET_COMMAND_MINECART, SET_JIGSAW, STRUCT, UPDATE_SIGN, SPECTATE;
|
||||
|
||||
/**
|
||||
* Initiate all server-bound play packet classes.
|
||||
*/
|
||||
public static void load() {
|
||||
FLYING = NMSUtils.getNMSClassWithoutException(PREFIX + "Flying");
|
||||
try {
|
||||
POSITION = NMSUtils.getNMSClass(PREFIX + "Position");
|
||||
POSITION_LOOK = NMSUtils.getNMSClass(PREFIX + "PositionLook");
|
||||
LOOK = NMSUtils.getNMSClass(PREFIX + "Look");
|
||||
} catch (Exception e) {
|
||||
POSITION = SubclassUtil.getSubClass(FLYING, PREFIX + "Position");
|
||||
POSITION_LOOK = SubclassUtil.getSubClass(FLYING, PREFIX + "PositionLook");
|
||||
LOOK = SubclassUtil.getSubClass(FLYING, PREFIX + "Look");
|
||||
}
|
||||
|
||||
try {
|
||||
SETTINGS = NMSUtils.getNMSClass(PREFIX + "Settings");
|
||||
ENCHANT_ITEM = NMSUtils.getNMSClass(PREFIX + "EnchantItem");
|
||||
|
||||
CLIENT_COMMAND = NMSUtils.getNMSClass(PREFIX + "ClientCommand");
|
||||
TRANSACTION = NMSUtils.getNMSClass(PREFIX + "Transaction");
|
||||
BLOCK_DIG = NMSUtils.getNMSClass(PREFIX + "BlockDig");
|
||||
ENTITY_ACTION = NMSUtils.getNMSClass(PREFIX + "EntityAction");
|
||||
USE_ENTITY = NMSUtils.getNMSClass(PREFIX + "UseEntity");
|
||||
WINDOW_CLICK = NMSUtils.getNMSClass(PREFIX + "WindowClick");
|
||||
STEER_VEHICLE = NMSUtils.getNMSClass(PREFIX + "SteerVehicle");
|
||||
CUSTOM_PAYLOAD = NMSUtils.getNMSClass(PREFIX + "CustomPayload");
|
||||
ARM_ANIMATION = NMSUtils.getNMSClass(PREFIX + "ArmAnimation");
|
||||
ABILITIES = NMSUtils.getNMSClass(PREFIX + "Abilities");
|
||||
HELD_ITEM_SLOT = NMSUtils.getNMSClass(PREFIX + "HeldItemSlot");
|
||||
CLOSE_WINDOW = NMSUtils.getNMSClass(PREFIX + "CloseWindow");
|
||||
TAB_COMPLETE = NMSUtils.getNMSClass(PREFIX + "TabComplete");
|
||||
CHAT = NMSUtils.getNMSClass(PREFIX + "Chat");
|
||||
SET_CREATIVE_SLOT = NMSUtils.getNMSClass(PREFIX + "SetCreativeSlot");
|
||||
KEEP_ALIVE = NMSUtils.getNMSClass(PREFIX + "KeepAlive");
|
||||
UPDATE_SIGN = NMSUtils.getNMSClassWithoutException(PREFIX + "UpdateSign");
|
||||
|
||||
TELEPORT_ACCEPT = NMSUtils.getNMSClassWithoutException(PREFIX + "TeleportAccept");
|
||||
TILE_NBT_QUERY = NMSUtils.getNMSClassWithoutException(PREFIX + "TileNBTQuery");
|
||||
DIFFICULTY_CHANGE = NMSUtils.getNMSClassWithoutException(PREFIX + "DifficultyChange");
|
||||
B_EDIT = NMSUtils.getNMSClassWithoutException(PREFIX + "BEdit");
|
||||
ENTITY_NBT_QUERY = NMSUtils.getNMSClassWithoutException(PREFIX + "EntityNBTQuery");
|
||||
JIGSAW_GENERATE = NMSUtils.getNMSClassWithoutException(PREFIX + "JigsawGenerate");
|
||||
DIFFICULTY_LOCK = NMSUtils.getNMSClassWithoutException(PREFIX + "DifficultyLock");
|
||||
VEHICLE_MOVE = NMSUtils.getNMSClassWithoutException(PREFIX + "VehicleMove");
|
||||
BOAT_MOVE = NMSUtils.getNMSClassWithoutException(PREFIX + "BoatMove");
|
||||
PICK_ITEM = NMSUtils.getNMSClassWithoutException(PREFIX + "PickItem");
|
||||
AUTO_RECIPE = NMSUtils.getNMSClassWithoutException(PREFIX + "AutoRecipe");
|
||||
RECIPE_DISPLAYED = NMSUtils.getNMSClassWithoutException(PREFIX + "RecipeDisplayed");
|
||||
ITEM_NAME = NMSUtils.getNMSClassWithoutException(PREFIX + "ItemName");
|
||||
//1.8+
|
||||
RESOURCE_PACK_STATUS = NMSUtils.getNMSClassWithoutException(PREFIX + "ResourcePackStatus");
|
||||
|
||||
ADVANCEMENTS = NMSUtils.getNMSClassWithoutException(PREFIX + "Advancements");
|
||||
TR_SEL = NMSUtils.getNMSClassWithoutException(PREFIX + "TrSel");
|
||||
BEACON = NMSUtils.getNMSClassWithoutException(PREFIX + "Beacon");
|
||||
SET_COMMAND_BLOCK = NMSUtils.getNMSClassWithoutException(PREFIX + "SetCommandBlock");
|
||||
SET_COMMAND_MINECART = NMSUtils.getNMSClassWithoutException(PREFIX + "SetCommandMinecart");
|
||||
SET_JIGSAW = NMSUtils.getNMSClassWithoutException(PREFIX + "SetJigsaw");
|
||||
STRUCT = NMSUtils.getNMSClassWithoutException(PREFIX + "Struct");
|
||||
SPECTATE = NMSUtils.getNMSClassWithoutException(PREFIX + "Spectate");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
try {
|
||||
BLOCK_PLACE = NMSUtils.getNMSClass(PREFIX + "BlockPlace");
|
||||
USE_ITEM = NMSUtils.getNMSClass(PREFIX + "UseItem");
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public static class Server {
|
||||
private static final String s = "PacketPlayOut";
|
||||
public static Class<?> SPAWN_ENTITY, SPAWN_ENTITY_EXPERIENCE_ORB, SPAWN_ENTITY_WEATHER, SPAWN_ENTITY_LIVING,
|
||||
SPAWN_ENTITY_PAINTING, SPAWN_ENTITY_SPAWN, ANIMATION, STATISTIC,
|
||||
BLOCK_BREAK, BLOCK_BREAK_ANIMATION, TILE_ENTITY_DATA, BLOCK_ACTION,
|
||||
BLOCK_CHANGE, BOSS, SERVER_DIFFICULTY, CHAT, MULTI_BLOCK_CHANGE,
|
||||
TAB_COMPLETE, COMMANDS, TRANSACTION, CLOSE_WINDOW,
|
||||
WINDOW_ITEMS, WINDOW_DATA, SET_SLOT, SET_COOLDOWN,
|
||||
CUSTOM_PAYLOAD, CUSTOM_SOUND_EFFECT, KICK_DISCONNECT, ENTITY_STATUS,
|
||||
EXPLOSION, UNLOAD_CHUNK, GAME_STATE_CHANGE, OPEN_WINDOW_HORSE,
|
||||
KEEP_ALIVE, MAP_CHUNK, WORLD_EVENT, WORLD_PARTICLES,
|
||||
LIGHT_UPDATE, LOGIN, MAP, OPEN_WINDOW_MERCHANT,
|
||||
REL_ENTITY_MOVE, REL_ENTITY_MOVE_LOOK, ENTITY_LOOK, ENTITY,
|
||||
VEHICLE_MOVE, OPEN_BOOK, OPEN_WINDOW, OPEN_SIGN_EDITOR,
|
||||
AUTO_RECIPE, ABILITIES, COMBAT_EVENT, PLAYER_INFO,
|
||||
LOOK_AT, POSITION, RECIPES, ENTITY_DESTROY,
|
||||
REMOVE_ENTITY_EFFECT, RESOURCE_PACK_SEND, RESPAWN, ENTITY_HEAD_ROTATION,
|
||||
SELECT_ADVANCEMENT_TAB, WORLD_BORDER, CAMERA, HELD_ITEM_SLOT,
|
||||
VIEW_CENTRE, VIEW_DISTANCE, SCOREBOARD_DISPLAY_OBJECTIVE, ENTITY_METADATA,
|
||||
ATTACH_ENTITY, ENTITY_VELOCITY, ENTITY_EQUIPMENT, EXPERIENCE,
|
||||
UPDATE_HEALTH, SCOREBOARD_OBJECTIVE, MOUNT, SCOREBOARD_TEAM,
|
||||
SCOREBOARD_SCORE, SPAWN_POSITION, UPDATE_TIME, TITLE,
|
||||
ENTITY_SOUND, NAMED_SOUND_EFFECT, STOP_SOUND, PLAYER_LIST_HEADER_FOOTER,
|
||||
NBT_QUERY, COLLECT, ENTITY_TELEPORT, ADVANCEMENTS, UPDATE_ATTRIBUTES,
|
||||
ENTITY_EFFECT, RECIPE_UPDATE, TAGS, MAP_CHUNK_BULK, NAMED_ENTITY_SPAWN;
|
||||
|
||||
/**
|
||||
* Initiate all client-bound packet classes.
|
||||
*/
|
||||
public static void load() {
|
||||
SPAWN_ENTITY = NMSUtils.getNMSClassWithoutException(s + "SpawnEntity");
|
||||
SPAWN_ENTITY_EXPERIENCE_ORB = NMSUtils.getNMSClassWithoutException(s + "SpawnEntityExperienceOrb");
|
||||
SPAWN_ENTITY_WEATHER = NMSUtils.getNMSClassWithoutException(s + "SpawnEntityWeather");
|
||||
SPAWN_ENTITY_LIVING = NMSUtils.getNMSClassWithoutException(s + "SpawnEntityLiving");
|
||||
SPAWN_ENTITY_PAINTING = NMSUtils.getNMSClassWithoutException(s + "SpawnEntityPainting");
|
||||
SPAWN_ENTITY_SPAWN = NMSUtils.getNMSClassWithoutException(s + "SpawnEntitySpawn");
|
||||
ANIMATION = NMSUtils.getNMSClassWithoutException(s + "Animation");
|
||||
STATISTIC = NMSUtils.getNMSClassWithoutException(s + "Statistic");
|
||||
BLOCK_BREAK = NMSUtils.getNMSClassWithoutException(s + "BlockBreak");
|
||||
BLOCK_BREAK_ANIMATION = NMSUtils.getNMSClassWithoutException(s + "BlockBreakAnimation");
|
||||
TILE_ENTITY_DATA = NMSUtils.getNMSClassWithoutException(s + "TileEntityData");
|
||||
BLOCK_ACTION = NMSUtils.getNMSClassWithoutException(s + "BlockAction");
|
||||
BLOCK_CHANGE = NMSUtils.getNMSClassWithoutException(s + "BlockChange");
|
||||
BOSS = NMSUtils.getNMSClassWithoutException(s + "Boss");
|
||||
SERVER_DIFFICULTY = NMSUtils.getNMSClassWithoutException(s + "ServerDifficulty");
|
||||
CHAT = NMSUtils.getNMSClassWithoutException(s + "Chat");
|
||||
MULTI_BLOCK_CHANGE = NMSUtils.getNMSClassWithoutException(s + "MultiBlockChange");
|
||||
TAB_COMPLETE = NMSUtils.getNMSClassWithoutException(s + "TabComplete");
|
||||
COMMANDS = NMSUtils.getNMSClassWithoutException(s + "Commands");
|
||||
TRANSACTION = NMSUtils.getNMSClassWithoutException(s + "Transaction");
|
||||
CLOSE_WINDOW = NMSUtils.getNMSClassWithoutException(s + "CloseWindow");
|
||||
WINDOW_ITEMS = NMSUtils.getNMSClassWithoutException(s + "WindowItems");
|
||||
WINDOW_DATA = NMSUtils.getNMSClassWithoutException(s + "WindowData");
|
||||
SET_SLOT = NMSUtils.getNMSClassWithoutException(s + "SetSlot");
|
||||
SET_COOLDOWN = NMSUtils.getNMSClassWithoutException(s + "SetCooldown");
|
||||
CUSTOM_PAYLOAD = NMSUtils.getNMSClassWithoutException(s + "CustomPayload");
|
||||
CUSTOM_SOUND_EFFECT = NMSUtils.getNMSClassWithoutException(s + "CustomSoundEffect");
|
||||
KICK_DISCONNECT = NMSUtils.getNMSClassWithoutException(s + "KickDisconnect");
|
||||
ENTITY_STATUS = NMSUtils.getNMSClassWithoutException(s + "EntityStatus");
|
||||
EXPLOSION = NMSUtils.getNMSClassWithoutException(s + "Explosion");
|
||||
UNLOAD_CHUNK = NMSUtils.getNMSClassWithoutException(s + "UnloadChunk");
|
||||
GAME_STATE_CHANGE = NMSUtils.getNMSClassWithoutException(s + "GameStateChange");
|
||||
OPEN_WINDOW_HORSE = NMSUtils.getNMSClassWithoutException(s + "OpenWindowHorse");
|
||||
KEEP_ALIVE = NMSUtils.getNMSClassWithoutException(s + "KeepAlive");
|
||||
MAP_CHUNK = NMSUtils.getNMSClassWithoutException(s + "MapChunk");
|
||||
WORLD_EVENT = NMSUtils.getNMSClassWithoutException(s + "WorldEvent");
|
||||
WORLD_PARTICLES = NMSUtils.getNMSClassWithoutException(s + "WorldParticles");
|
||||
LIGHT_UPDATE = NMSUtils.getNMSClassWithoutException(s + "LightUpdate");
|
||||
LOGIN = NMSUtils.getNMSClassWithoutException(s + "Login");
|
||||
MAP = NMSUtils.getNMSClassWithoutException(s + "Map");
|
||||
OPEN_WINDOW_MERCHANT = NMSUtils.getNMSClassWithoutException(s + "OpenWindowMerchant");
|
||||
ENTITY = NMSUtils.getNMSClassWithoutException(s + "Entity");
|
||||
REL_ENTITY_MOVE = SubclassUtil.getSubClass(ENTITY, s + "RelEntityMove");
|
||||
REL_ENTITY_MOVE_LOOK = SubclassUtil.getSubClass(ENTITY, s + "RelEntityMoveLook");
|
||||
ENTITY_LOOK = SubclassUtil.getSubClass(ENTITY, s + "EntityLook");
|
||||
if (REL_ENTITY_MOVE == null) {
|
||||
//is not a subclass and should be accessed normally
|
||||
REL_ENTITY_MOVE = NMSUtils.getNMSClassWithoutException(s + "RelEntityMove");
|
||||
REL_ENTITY_MOVE_LOOK = NMSUtils.getNMSClassWithoutException(s + "RelEntityMoveLook");
|
||||
ENTITY_LOOK = NMSUtils.getNMSClassWithoutException(s + "RelEntityLook");
|
||||
}
|
||||
VEHICLE_MOVE = NMSUtils.getNMSClassWithoutException(s + "VehicleMove");
|
||||
OPEN_BOOK = NMSUtils.getNMSClassWithoutException(s + "OpenBook");
|
||||
OPEN_WINDOW = NMSUtils.getNMSClassWithoutException(s + "OpenWindow");
|
||||
OPEN_SIGN_EDITOR = NMSUtils.getNMSClassWithoutException(s + "OpenSignEditor");
|
||||
AUTO_RECIPE = NMSUtils.getNMSClassWithoutException(s + "AutoRecipe");
|
||||
ABILITIES = NMSUtils.getNMSClassWithoutException(s + "Abilities");
|
||||
COMBAT_EVENT = NMSUtils.getNMSClassWithoutException(s + "CombatEvent");
|
||||
PLAYER_INFO = NMSUtils.getNMSClassWithoutException(s + "PlayerInfo");
|
||||
LOOK_AT = NMSUtils.getNMSClassWithoutException(s + "LookAt");
|
||||
POSITION = NMSUtils.getNMSClassWithoutException(s + "Position");
|
||||
RECIPES = NMSUtils.getNMSClassWithoutException(s + "Recipes");
|
||||
ENTITY_DESTROY = NMSUtils.getNMSClassWithoutException(s + "EntityDestroy");
|
||||
REMOVE_ENTITY_EFFECT = NMSUtils.getNMSClassWithoutException(s + "RemoveEntityEffect");
|
||||
RESOURCE_PACK_SEND = NMSUtils.getNMSClassWithoutException(s + "ResourcePackSend");
|
||||
RESPAWN = NMSUtils.getNMSClassWithoutException(s + "Respawn");
|
||||
ENTITY_HEAD_ROTATION = NMSUtils.getNMSClassWithoutException(s + "EntityHeadRotation");
|
||||
SELECT_ADVANCEMENT_TAB = NMSUtils.getNMSClassWithoutException(s + "SelectAdvancementTab");
|
||||
WORLD_BORDER = NMSUtils.getNMSClassWithoutException(s + "WorldBorder");
|
||||
CAMERA = NMSUtils.getNMSClassWithoutException(s + "Camera");
|
||||
HELD_ITEM_SLOT = NMSUtils.getNMSClassWithoutException(s + "HeldItemSlot");
|
||||
VIEW_CENTRE = NMSUtils.getNMSClassWithoutException(s + "ViewCentre");
|
||||
VIEW_DISTANCE = NMSUtils.getNMSClassWithoutException(s + "ViewDistance");
|
||||
SCOREBOARD_DISPLAY_OBJECTIVE = NMSUtils.getNMSClassWithoutException(s + "ScoreboardDisplayObjective");
|
||||
ENTITY_METADATA = NMSUtils.getNMSClassWithoutException(s + "EntityMetadata");
|
||||
ATTACH_ENTITY = NMSUtils.getNMSClassWithoutException(s + "AttachEntity");
|
||||
ENTITY_VELOCITY = NMSUtils.getNMSClassWithoutException(s + "EntityVelocity");
|
||||
ENTITY_EQUIPMENT = NMSUtils.getNMSClassWithoutException(s + "EntityEquipment");
|
||||
EXPERIENCE = NMSUtils.getNMSClassWithoutException(s + "Experience");
|
||||
UPDATE_HEALTH = NMSUtils.getNMSClassWithoutException(s + "UpdateHealth");
|
||||
SCOREBOARD_OBJECTIVE = NMSUtils.getNMSClassWithoutException(s + "ScoreboardObjective");
|
||||
MOUNT = NMSUtils.getNMSClassWithoutException(s + "Mount");
|
||||
SCOREBOARD_TEAM = NMSUtils.getNMSClassWithoutException(s + "ScoreboardTeam");
|
||||
SCOREBOARD_SCORE = NMSUtils.getNMSClassWithoutException(s + "ScoreboardScore");
|
||||
SPAWN_POSITION = NMSUtils.getNMSClassWithoutException(s + "SpawnPosition");
|
||||
UPDATE_TIME = NMSUtils.getNMSClassWithoutException(s + "UpdateTime");
|
||||
TITLE = NMSUtils.getNMSClassWithoutException(s + "Title");
|
||||
ENTITY_SOUND = NMSUtils.getNMSClassWithoutException(s + "EntitySound");
|
||||
NAMED_SOUND_EFFECT = NMSUtils.getNMSClassWithoutException(s + "NamedSoundEffect");
|
||||
STOP_SOUND = NMSUtils.getNMSClassWithoutException(s + "StopSound");
|
||||
PLAYER_LIST_HEADER_FOOTER = NMSUtils.getNMSClassWithoutException(s + "PlayerListHeaderFooter");
|
||||
NBT_QUERY = NMSUtils.getNMSClassWithoutException(s + "NBTQuery");
|
||||
COLLECT = NMSUtils.getNMSClassWithoutException(s + "Collect");
|
||||
ENTITY_TELEPORT = NMSUtils.getNMSClassWithoutException(s + "EntityTeleport");
|
||||
ADVANCEMENTS = NMSUtils.getNMSClassWithoutException(s + "Advancements");
|
||||
UPDATE_ATTRIBUTES = NMSUtils.getNMSClassWithoutException(s + "UpdateAttributes");
|
||||
ENTITY_EFFECT = NMSUtils.getNMSClassWithoutException(s + "EntityEffect");
|
||||
RECIPE_UPDATE = NMSUtils.getNMSClassWithoutException(s + "RecipeUpdate");
|
||||
TAGS = NMSUtils.getNMSClassWithoutException(s + "Tags");
|
||||
MAP_CHUNK_BULK = NMSUtils.getNMSClassWithoutException(s + "MapChunkBulk");
|
||||
NAMED_ENTITY_SPAWN = NMSUtils.getNMSClassWithoutException(s + "NamedEntitySpawn");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,697 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.packetwrappers;
|
||||
|
||||
import io.github.retrooper.packetevents.utils.reflection.ClassUtil;
|
||||
|
||||
public class NMSPacket {
|
||||
private final Object rawNMSPacket;
|
||||
|
||||
public NMSPacket(Object rawNMSPacket) {
|
||||
this.rawNMSPacket = rawNMSPacket;
|
||||
}
|
||||
|
||||
public Object getRawNMSPacket() {
|
||||
return rawNMSPacket;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return ClassUtil.getClassSimpleName(rawNMSPacket.getClass());
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package io.github.retrooper.packetevents.packetwrappers;
|
||||
|
||||
public interface Sendable {
|
||||
public Object asNMSPacket();
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
+686
@@ -0,0 +1,686 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.packetwrappers.api;
|
||||
|
||||
/**
|
||||
* This interface indicates that a packet wrapper supports being sent to a client.
|
||||
*/
|
||||
public interface SendableWrapper {
|
||||
Object asNMSPacket();
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
package io.github.retrooper.packetevents.packetwrappers.api;
|
||||
|
||||
import io.github.retrooper.packetevents.enums.ServerVersion;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class WrappedPacket {
|
||||
private final Player player;
|
||||
protected Object packet;
|
||||
protected static ServerVersion version = ServerVersion.getVersion();
|
||||
private static final String err = "Your Version is unsupported, " +
|
||||
"please contact explored " +
|
||||
"through his discord server (http://discord.gg/2uZY5A4) " +
|
||||
"and tell him what version your server is running on! " +
|
||||
"Make sure you are using spigot!";
|
||||
|
||||
public WrappedPacket(final Object packet) {
|
||||
this.player = null;
|
||||
if(packet == null)return;
|
||||
this.packet = packet;
|
||||
try {
|
||||
setup();
|
||||
} catch (final Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public WrappedPacket(final Player player, final Object packet) {
|
||||
this.player = player;
|
||||
if(packet == null)return;
|
||||
this.packet = packet;
|
||||
try {
|
||||
setup();
|
||||
} catch (final Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
protected void setup() {
|
||||
|
||||
}
|
||||
|
||||
protected void throwUnsupportedVersion() {
|
||||
throw new IllegalStateException(err);
|
||||
}
|
||||
|
||||
public final Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
}
|
||||
+720
@@ -0,0 +1,720 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.packetwrappers.api;
|
||||
|
||||
public interface WrapperPacketReader {
|
||||
|
||||
boolean readBoolean(int index);
|
||||
|
||||
byte readByte(int index);
|
||||
|
||||
short readShort(int index);
|
||||
|
||||
int readInt(int index);
|
||||
|
||||
long readLong(int index);
|
||||
|
||||
float readFloat(int index);
|
||||
|
||||
double readDouble(int index);
|
||||
|
||||
boolean[] readBooleanArray(int index);
|
||||
|
||||
byte[] readByteArray(int index);
|
||||
|
||||
short[] readShortArray(int index);
|
||||
|
||||
int[] readIntArray(int index);
|
||||
|
||||
long[] readLongArray(int index);
|
||||
|
||||
float[] readFloatArray(int index);
|
||||
|
||||
double[] readDoubleArray(int index);
|
||||
|
||||
String[] readStringArray(int index);
|
||||
|
||||
String readString(int index);
|
||||
|
||||
<T> T readObject(int index, Class<? extends T> type);
|
||||
|
||||
Enum<?> readEnumConstant(int index, Class<? extends Enum<?>> type);
|
||||
|
||||
Object readAnyObject(int index);
|
||||
}
|
||||
+720
@@ -0,0 +1,720 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.packetwrappers.api;
|
||||
|
||||
public interface WrapperPacketWriter {
|
||||
void writeBoolean(int index, boolean value);
|
||||
|
||||
void writeByte(int index, byte value);
|
||||
|
||||
void writeShort(int index, short value);
|
||||
|
||||
void writeInt(int index, int value);
|
||||
|
||||
void writeLong(int index, long value);
|
||||
|
||||
void writeFloat(int index, float value);
|
||||
|
||||
void writeDouble(int index, double value);
|
||||
|
||||
void writeString(int index, String value);
|
||||
|
||||
//ARRAYS
|
||||
void writeBooleanArray(int index, boolean[] array);
|
||||
|
||||
void writeByteArray(int index, byte[] value);
|
||||
|
||||
void writeShortArray(int index, short[] value);
|
||||
|
||||
void writeIntArray(int index, int[] value);
|
||||
|
||||
void writeLongArray(int index, long[] value);
|
||||
|
||||
void writeFloatArray(int index, float[] value);
|
||||
|
||||
void writeDoubleArray(int index, double[] value);
|
||||
|
||||
void writeStringArray(int index, String[] value);
|
||||
|
||||
void writeObject(int index, Object object);
|
||||
|
||||
void writeAnyObject(int index, Object value);
|
||||
|
||||
void writeEnumConstant(int index, Enum<?> enumConstant);
|
||||
}
|
||||
+745
@@ -0,0 +1,745 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.packetwrappers.api.helper;
|
||||
|
||||
import io.github.retrooper.packetevents.packetwrappers.NMSPacket;
|
||||
import io.github.retrooper.packetevents.packetwrappers.WrappedPacket;
|
||||
import io.github.retrooper.packetevents.utils.nms.NMSUtils;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
public abstract class WrappedPacketEntityAbstraction extends WrappedPacket {
|
||||
private final int entityIDFieldIndex;
|
||||
protected Entity entity;
|
||||
protected int entityID = -1;
|
||||
|
||||
public WrappedPacketEntityAbstraction(NMSPacket packet, int entityIDFieldIndex) {
|
||||
super(packet);
|
||||
this.entityIDFieldIndex = entityIDFieldIndex;
|
||||
}
|
||||
|
||||
public WrappedPacketEntityAbstraction(NMSPacket packet) {
|
||||
super(packet);
|
||||
this.entityIDFieldIndex = 0;
|
||||
}
|
||||
|
||||
public WrappedPacketEntityAbstraction(int entityIDFieldIndex) {
|
||||
super();
|
||||
this.entityIDFieldIndex = entityIDFieldIndex;
|
||||
}
|
||||
|
||||
public WrappedPacketEntityAbstraction() {
|
||||
super();
|
||||
this.entityIDFieldIndex = 0;
|
||||
}
|
||||
|
||||
public int getEntityId() {
|
||||
if (entityID != -1 || packet == null) {
|
||||
return entityID;
|
||||
}
|
||||
return entityID = readInt(entityIDFieldIndex);
|
||||
}
|
||||
|
||||
public void setEntityId(int entityID) {
|
||||
if (packet != null) {
|
||||
writeInt(entityIDFieldIndex, this.entityID = entityID);
|
||||
} else {
|
||||
this.entityID = entityID;
|
||||
}
|
||||
this.entity = null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Entity getEntity(@Nullable World world) {
|
||||
if (entity != null) {
|
||||
return entity;
|
||||
}
|
||||
return entity = NMSUtils.getEntityById(world, getEntityId());
|
||||
}
|
||||
|
||||
public Entity getEntity() {
|
||||
return getEntity(null);
|
||||
}
|
||||
|
||||
public void setEntity(@NotNull Entity entity) {
|
||||
setEntityId(entity.getEntityId());
|
||||
this.entity = entity;
|
||||
}
|
||||
}
|
||||
+713
@@ -0,0 +1,713 @@
|
||||
/*
|
||||
* GNU GENERAL PUBLIC LICENSE
|
||||
* Version 3, 29 June 2007
|
||||
*
|
||||
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*
|
||||
* Preamble
|
||||
*
|
||||
* The GNU General Public License is a free, copyleft license for
|
||||
* software and other kinds of works.
|
||||
*
|
||||
* The licenses for most software and other practical works are designed
|
||||
* to take away your freedom to share and change the works. By contrast,
|
||||
* the GNU General Public License is intended to guarantee your freedom to
|
||||
* share and change all versions of a program--to make sure it remains free
|
||||
* software for all its users. We, the Free Software Foundation, use the
|
||||
* GNU General Public License for most of our software; it applies also to
|
||||
* any other work released this way by its authors. You can apply it to
|
||||
* your programs, too.
|
||||
*
|
||||
* When we speak of free software, we are referring to freedom, not
|
||||
* price. Our General Public Licenses are designed to make sure that you
|
||||
* have the freedom to distribute copies of free software (and charge for
|
||||
* them if you wish), that you receive source code or can get it if you
|
||||
* want it, that you can change the software or use pieces of it in new
|
||||
* free programs, and that you know you can do these things.
|
||||
*
|
||||
* To protect your rights, we need to prevent others from denying you
|
||||
* these rights or asking you to surrender the rights. Therefore, you have
|
||||
* certain responsibilities if you distribute copies of the software, or if
|
||||
* you modify it: responsibilities to respect the freedom of others.
|
||||
*
|
||||
* For example, if you distribute copies of such a program, whether
|
||||
* gratis or for a fee, you must pass on to the recipients the same
|
||||
* freedoms that you received. You must make sure that they, too, receive
|
||||
* or can get the source code. And you must show them these terms so they
|
||||
* know their rights.
|
||||
*
|
||||
* Developers that use the GNU GPL protect your rights with two steps:
|
||||
* (1) assert copyright on the software, and (2) offer you this License
|
||||
* giving you legal permission to copy, distribute and/or modify it.
|
||||
*
|
||||
* For the developers' and authors' protection, the GPL clearly explains
|
||||
* that there is no warranty for this free software. For both users' and
|
||||
* authors' sake, the GPL requires that modified versions be marked as
|
||||
* changed, so that their problems will not be attributed erroneously to
|
||||
* authors of previous versions.
|
||||
*
|
||||
* Some devices are designed to deny users access to install or run
|
||||
* modified versions of the software inside them, although the manufacturer
|
||||
* can do so. This is fundamentally incompatible with the aim of
|
||||
* protecting users' freedom to change the software. The systematic
|
||||
* pattern of such abuse occurs in the area of products for individuals to
|
||||
* use, which is precisely where it is most unacceptable. Therefore, we
|
||||
* have designed this version of the GPL to prohibit the practice for those
|
||||
* products. If such problems arise substantially in other domains, we
|
||||
* stand ready to extend this provision to those domains in future versions
|
||||
* of the GPL, as needed to protect the freedom of users.
|
||||
*
|
||||
* Finally, every program is threatened constantly by software patents.
|
||||
* States should not allow patents to restrict development and use of
|
||||
* software on general-purpose computers, but in those that do, we wish to
|
||||
* avoid the special danger that patents applied to a free program could
|
||||
* make it effectively proprietary. To prevent this, the GPL assures that
|
||||
* patents cannot be used to render the program non-free.
|
||||
*
|
||||
* The precise terms and conditions for copying, distribution and
|
||||
* modification follow.
|
||||
*
|
||||
* TERMS AND CONDITIONS
|
||||
*
|
||||
* 0. Definitions.
|
||||
*
|
||||
* "This License" refers to version 3 of the GNU General Public License.
|
||||
*
|
||||
* "Copyright" also means copyright-like laws that apply to other kinds of
|
||||
* works, such as semiconductor masks.
|
||||
*
|
||||
* "The Program" refers to any copyrightable work licensed under this
|
||||
* License. Each licensee is addressed as "you". "Licensees" and
|
||||
* "recipients" may be individuals or organizations.
|
||||
*
|
||||
* To "modify" a work means to copy from or adapt all or part of the work
|
||||
* in a fashion requiring copyright permission, other than the making of an
|
||||
* exact copy. The resulting work is called a "modified version" of the
|
||||
* earlier work or a work "based on" the earlier work.
|
||||
*
|
||||
* A "covered work" means either the unmodified Program or a work based
|
||||
* on the Program.
|
||||
*
|
||||
* To "propagate" a work means to do anything with it that, without
|
||||
* permission, would make you directly or secondarily liable for
|
||||
* infringement under applicable copyright law, except executing it on a
|
||||
* computer or modifying a private copy. Propagation includes copying,
|
||||
* distribution (with or without modification), making available to the
|
||||
* public, and in some countries other activities as well.
|
||||
*
|
||||
* To "convey" a work means any kind of propagation that enables other
|
||||
* parties to make or receive copies. Mere interaction with a user through
|
||||
* a computer network, with no transfer of a copy, is not conveying.
|
||||
*
|
||||
* An interactive user interface displays "Appropriate Legal Notices"
|
||||
* to the extent that it includes a convenient and prominently visible
|
||||
* feature that (1) displays an appropriate copyright notice, and (2)
|
||||
* tells the user that there is no warranty for the work (except to the
|
||||
* extent that warranties are provided), that licensees may convey the
|
||||
* work under this License, and how to view a copy of this License. If
|
||||
* the interface presents a list of user commands or options, such as a
|
||||
* menu, a prominent item in the list meets this criterion.
|
||||
*
|
||||
* 1. Source Code.
|
||||
*
|
||||
* The "source code" for a work means the preferred form of the work
|
||||
* for making modifications to it. "Object code" means any non-source
|
||||
* form of a work.
|
||||
*
|
||||
* A "Standard Interface" means an interface that either is an official
|
||||
* standard defined by a recognized standards body, or, in the case of
|
||||
* interfaces specified for a particular programming language, one that
|
||||
* is widely used among developers working in that language.
|
||||
*
|
||||
* The "System Libraries" of an executable work include anything, other
|
||||
* than the work as a whole, that (a) is included in the normal form of
|
||||
* packaging a Major Component, but which is not part of that Major
|
||||
* Component, and (b) serves only to enable use of the work with that
|
||||
* Major Component, or to implement a Standard Interface for which an
|
||||
* implementation is available to the public in source code form. A
|
||||
* "Major Component", in this context, means a major essential component
|
||||
* (kernel, window system, and so on) of the specific operating system
|
||||
* (if any) on which the executable work runs, or a compiler used to
|
||||
* produce the work, or an object code interpreter used to run it.
|
||||
*
|
||||
* The "Corresponding Source" for a work in object code form means all
|
||||
* the source code needed to generate, install, and (for an executable
|
||||
* work) run the object code and to modify the work, including scripts to
|
||||
* control those activities. However, it does not include the work's
|
||||
* System Libraries, or general-purpose tools or generally available free
|
||||
* programs which are used unmodified in performing those activities but
|
||||
* which are not part of the work. For example, Corresponding Source
|
||||
* includes interface definition files associated with source files for
|
||||
* the work, and the source code for shared libraries and dynamically
|
||||
* linked subprograms that the work is specifically designed to require,
|
||||
* such as by intimate data communication or control flow between those
|
||||
* subprograms and other parts of the work.
|
||||
*
|
||||
* The Corresponding Source need not include anything that users
|
||||
* can regenerate automatically from other parts of the Corresponding
|
||||
* Source.
|
||||
*
|
||||
* The Corresponding Source for a work in source code form is that
|
||||
* same work.
|
||||
*
|
||||
* 2. Basic Permissions.
|
||||
*
|
||||
* All rights granted under this License are granted for the term of
|
||||
* copyright on the Program, and are irrevocable provided the stated
|
||||
* conditions are met. This License explicitly affirms your unlimited
|
||||
* permission to run the unmodified Program. The output from running a
|
||||
* covered work is covered by this License only if the output, given its
|
||||
* content, constitutes a covered work. This License acknowledges your
|
||||
* rights of fair use or other equivalent, as provided by copyright law.
|
||||
*
|
||||
* You may make, run and propagate covered works that you do not
|
||||
* convey, without conditions so long as your license otherwise remains
|
||||
* in force. You may convey covered works to others for the sole purpose
|
||||
* of having them make modifications exclusively for you, or provide you
|
||||
* with facilities for running those works, provided that you comply with
|
||||
* the terms of this License in conveying all material for which you do
|
||||
* not control copyright. Those thus making or running the covered works
|
||||
* for you must do so exclusively on your behalf, under your direction
|
||||
* and control, on terms that prohibit them from making any copies of
|
||||
* your copyrighted material outside their relationship with you.
|
||||
*
|
||||
* Conveying under any other circumstances is permitted solely under
|
||||
* the conditions stated below. Sublicensing is not allowed; section 10
|
||||
* makes it unnecessary.
|
||||
*
|
||||
* 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
*
|
||||
* No covered work shall be deemed part of an effective technological
|
||||
* measure under any applicable law fulfilling obligations under article
|
||||
* 11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
* similar laws prohibiting or restricting circumvention of such
|
||||
* measures.
|
||||
*
|
||||
* When you convey a covered work, you waive any legal power to forbid
|
||||
* circumvention of technological measures to the extent such circumvention
|
||||
* is effected by exercising rights under this License with respect to
|
||||
* the covered work, and you disclaim any intention to limit operation or
|
||||
* modification of the work as a means of enforcing, against the work's
|
||||
* users, your or third parties' legal rights to forbid circumvention of
|
||||
* technological measures.
|
||||
*
|
||||
* 4. Conveying Verbatim Copies.
|
||||
*
|
||||
* You may convey verbatim copies of the Program's source code as you
|
||||
* receive it, in any medium, provided that you conspicuously and
|
||||
* appropriately publish on each copy an appropriate copyright notice;
|
||||
* keep intact all notices stating that this License and any
|
||||
* non-permissive terms added in accord with section 7 apply to the code;
|
||||
* keep intact all notices of the absence of any warranty; and give all
|
||||
* recipients a copy of this License along with the Program.
|
||||
*
|
||||
* You may charge any price or no price for each copy that you convey,
|
||||
* and you may offer support or warranty protection for a fee.
|
||||
*
|
||||
* 5. Conveying Modified Source Versions.
|
||||
*
|
||||
* You may convey a work based on the Program, or the modifications to
|
||||
* produce it from the Program, in the form of source code under the
|
||||
* terms of section 4, provided that you also meet all of these conditions:
|
||||
*
|
||||
* a) The work must carry prominent notices stating that you modified
|
||||
* it, and giving a relevant date.
|
||||
*
|
||||
* b) The work must carry prominent notices stating that it is
|
||||
* released under this License and any conditions added under section
|
||||
* 7. This requirement modifies the requirement in section 4 to
|
||||
* "keep intact all notices".
|
||||
*
|
||||
* c) You must license the entire work, as a whole, under this
|
||||
* License to anyone who comes into possession of a copy. This
|
||||
* License will therefore apply, along with any applicable section 7
|
||||
* additional terms, to the whole of the work, and all its parts,
|
||||
* regardless of how they are packaged. This License gives no
|
||||
* permission to license the work in any other way, but it does not
|
||||
* invalidate such permission if you have separately received it.
|
||||
*
|
||||
* d) If the work has interactive user interfaces, each must display
|
||||
* Appropriate Legal Notices; however, if the Program has interactive
|
||||
* interfaces that do not display Appropriate Legal Notices, your
|
||||
* work need not make them do so.
|
||||
*
|
||||
* A compilation of a covered work with other separate and independent
|
||||
* works, which are not by their nature extensions of the covered work,
|
||||
* and which are not combined with it such as to form a larger program,
|
||||
* in or on a volume of a storage or distribution medium, is called an
|
||||
* "aggregate" if the compilation and its resulting copyright are not
|
||||
* used to limit the access or legal rights of the compilation's users
|
||||
* beyond what the individual works permit. Inclusion of a covered work
|
||||
* in an aggregate does not cause this License to apply to the other
|
||||
* parts of the aggregate.
|
||||
*
|
||||
* 6. Conveying Non-Source Forms.
|
||||
*
|
||||
* You may convey a covered work in object code form under the terms
|
||||
* of sections 4 and 5, provided that you also convey the
|
||||
* machine-readable Corresponding Source under the terms of this License,
|
||||
* in one of these ways:
|
||||
*
|
||||
* a) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by the
|
||||
* Corresponding Source fixed on a durable physical medium
|
||||
* customarily used for software interchange.
|
||||
*
|
||||
* b) Convey the object code in, or embodied in, a physical product
|
||||
* (including a physical distribution medium), accompanied by a
|
||||
* written offer, valid for at least three years and valid for as
|
||||
* long as you offer spare parts or customer support for that product
|
||||
* model, to give anyone who possesses the object code either (1) a
|
||||
* copy of the Corresponding Source for all the software in the
|
||||
* product that is covered by this License, on a durable physical
|
||||
* medium customarily used for software interchange, for a price no
|
||||
* more than your reasonable cost of physically performing this
|
||||
* conveying of source, or (2) access to copy the
|
||||
* Corresponding Source from a network server at no charge.
|
||||
*
|
||||
* c) Convey individual copies of the object code with a copy of the
|
||||
* written offer to provide the Corresponding Source. This
|
||||
* alternative is allowed only occasionally and noncommercially, and
|
||||
* only if you received the object code with such an offer, in accord
|
||||
* with subsection 6b.
|
||||
*
|
||||
* d) Convey the object code by offering access from a designated
|
||||
* place (gratis or for a charge), and offer equivalent access to the
|
||||
* Corresponding Source in the same way through the same place at no
|
||||
* further charge. You need not require recipients to copy the
|
||||
* Corresponding Source along with the object code. If the place to
|
||||
* copy the object code is a network server, the Corresponding Source
|
||||
* may be on a different server (operated by you or a third party)
|
||||
* that supports equivalent copying facilities, provided you maintain
|
||||
* clear directions next to the object code saying where to find the
|
||||
* Corresponding Source. Regardless of what server hosts the
|
||||
* Corresponding Source, you remain obligated to ensure that it is
|
||||
* available for as long as needed to satisfy these requirements.
|
||||
*
|
||||
* e) Convey the object code using peer-to-peer transmission, provided
|
||||
* you inform other peers where the object code and Corresponding
|
||||
* Source of the work are being offered to the general public at no
|
||||
* charge under subsection 6d.
|
||||
*
|
||||
* A separable portion of the object code, whose source code is excluded
|
||||
* from the Corresponding Source as a System Library, need not be
|
||||
* included in conveying the object code work.
|
||||
*
|
||||
* A "User Product" is either (1) a "consumer product", which means any
|
||||
* tangible personal property which is normally used for personal, family,
|
||||
* or household purposes, or (2) anything designed or sold for incorporation
|
||||
* into a dwelling. In determining whether a product is a consumer product,
|
||||
* doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
* product received by a particular user, "normally used" refers to a
|
||||
* typical or common use of that class of product, regardless of the status
|
||||
* of the particular user or of the way in which the particular user
|
||||
* actually uses, or expects or is expected to use, the product. A product
|
||||
* is a consumer product regardless of whether the product has substantial
|
||||
* commercial, industrial or non-consumer uses, unless such uses represent
|
||||
* the only significant mode of use of the product.
|
||||
*
|
||||
* "Installation Information" for a User Product means any methods,
|
||||
* procedures, authorization keys, or other information required to install
|
||||
* and execute modified versions of a covered work in that User Product from
|
||||
* a modified version of its Corresponding Source. The information must
|
||||
* suffice to ensure that the continued functioning of the modified object
|
||||
* code is in no case prevented or interfered with solely because
|
||||
* modification has been made.
|
||||
*
|
||||
* If you convey an object code work under this section in, or with, or
|
||||
* specifically for use in, a User Product, and the conveying occurs as
|
||||
* part of a transaction in which the right of possession and use of the
|
||||
* User Product is transferred to the recipient in perpetuity or for a
|
||||
* fixed term (regardless of how the transaction is characterized), the
|
||||
* Corresponding Source conveyed under this section must be accompanied
|
||||
* by the Installation Information. But this requirement does not apply
|
||||
* if neither you nor any third party retains the ability to install
|
||||
* modified object code on the User Product (for example, the work has
|
||||
* been installed in ROM).
|
||||
*
|
||||
* The requirement to provide Installation Information does not include a
|
||||
* requirement to continue to provide support service, warranty, or updates
|
||||
* for a work that has been modified or installed by the recipient, or for
|
||||
* the User Product in which it has been modified or installed. Access to a
|
||||
* network may be denied when the modification itself materially and
|
||||
* adversely affects the operation of the network or violates the rules and
|
||||
* protocols for communication across the network.
|
||||
*
|
||||
* Corresponding Source conveyed, and Installation Information provided,
|
||||
* in accord with this section must be in a format that is publicly
|
||||
* documented (and with an implementation available to the public in
|
||||
* source code form), and must require no special password or key for
|
||||
* unpacking, reading or copying.
|
||||
*
|
||||
* 7. Additional Terms.
|
||||
*
|
||||
* "Additional permissions" are terms that supplement the terms of this
|
||||
* License by making exceptions from one or more of its conditions.
|
||||
* Additional permissions that are applicable to the entire Program shall
|
||||
* be treated as though they were included in this License, to the extent
|
||||
* that they are valid under applicable law. If additional permissions
|
||||
* apply only to part of the Program, that part may be used separately
|
||||
* under those permissions, but the entire Program remains governed by
|
||||
* this License without regard to the additional permissions.
|
||||
*
|
||||
* When you convey a copy of a covered work, you may at your option
|
||||
* remove any additional permissions from that copy, or from any part of
|
||||
* it. (Additional permissions may be written to require their own
|
||||
* removal in certain cases when you modify the work.) You may place
|
||||
* additional permissions on material, added by you to a covered work,
|
||||
* for which you have or can give appropriate copyright permission.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, for material you
|
||||
* add to a covered work, you may (if authorized by the copyright holders of
|
||||
* that material) supplement the terms of this License with terms:
|
||||
*
|
||||
* a) Disclaiming warranty or limiting liability differently from the
|
||||
* terms of sections 15 and 16 of this License; or
|
||||
*
|
||||
* b) Requiring preservation of specified reasonable legal notices or
|
||||
* author attributions in that material or in the Appropriate Legal
|
||||
* Notices displayed by works containing it; or
|
||||
*
|
||||
* c) Prohibiting misrepresentation of the origin of that material, or
|
||||
* requiring that modified versions of such material be marked in
|
||||
* reasonable ways as different from the original version; or
|
||||
*
|
||||
* d) Limiting the use for publicity purposes of names of licensors or
|
||||
* authors of the material; or
|
||||
*
|
||||
* e) Declining to grant rights under trademark law for use of some
|
||||
* trade names, trademarks, or service marks; or
|
||||
*
|
||||
* f) Requiring indemnification of licensors and authors of that
|
||||
* material by anyone who conveys the material (or modified versions of
|
||||
* it) with contractual assumptions of liability to the recipient, for
|
||||
* any liability that these contractual assumptions directly impose on
|
||||
* those licensors and authors.
|
||||
*
|
||||
* All other non-permissive additional terms are considered "further
|
||||
* restrictions" within the meaning of section 10. If the Program as you
|
||||
* received it, or any part of it, contains a notice stating that it is
|
||||
* governed by this License along with a term that is a further
|
||||
* restriction, you may remove that term. If a license document contains
|
||||
* a further restriction but permits relicensing or conveying under this
|
||||
* License, you may add to a covered work material governed by the terms
|
||||
* of that license document, provided that the further restriction does
|
||||
* not survive such relicensing or conveying.
|
||||
*
|
||||
* If you add terms to a covered work in accord with this section, you
|
||||
* must place, in the relevant source files, a statement of the
|
||||
* additional terms that apply to those files, or a notice indicating
|
||||
* where to find the applicable terms.
|
||||
*
|
||||
* Additional terms, permissive or non-permissive, may be stated in the
|
||||
* form of a separately written license, or stated as exceptions;
|
||||
* the above requirements apply either way.
|
||||
*
|
||||
* 8. Termination.
|
||||
*
|
||||
* You may not propagate or modify a covered work except as expressly
|
||||
* provided under this License. Any attempt otherwise to propagate or
|
||||
* modify it is void, and will automatically terminate your rights under
|
||||
* this License (including any patent licenses granted under the third
|
||||
* paragraph of section 11).
|
||||
*
|
||||
* However, if you cease all violation of this License, then your
|
||||
* license from a particular copyright holder is reinstated (a)
|
||||
* provisionally, unless and until the copyright holder explicitly and
|
||||
* finally terminates your license, and (b) permanently, if the copyright
|
||||
* holder fails to notify you of the violation by some reasonable means
|
||||
* prior to 60 days after the cessation.
|
||||
*
|
||||
* Moreover, your license from a particular copyright holder is
|
||||
* reinstated permanently if the copyright holder notifies you of the
|
||||
* violation by some reasonable means, this is the first time you have
|
||||
* received notice of violation of this License (for any work) from that
|
||||
* copyright holder, and you cure the violation prior to 30 days after
|
||||
* your receipt of the notice.
|
||||
*
|
||||
* Termination of your rights under this section does not terminate the
|
||||
* licenses of parties who have received copies or rights from you under
|
||||
* this License. If your rights have been terminated and not permanently
|
||||
* reinstated, you do not qualify to receive new licenses for the same
|
||||
* material under section 10.
|
||||
*
|
||||
* 9. Acceptance Not Required for Having Copies.
|
||||
*
|
||||
* You are not required to accept this License in order to receive or
|
||||
* run a copy of the Program. Ancillary propagation of a covered work
|
||||
* occurring solely as a consequence of using peer-to-peer transmission
|
||||
* to receive a copy likewise does not require acceptance. However,
|
||||
* nothing other than this License grants you permission to propagate or
|
||||
* modify any covered work. These actions infringe copyright if you do
|
||||
* not accept this License. Therefore, by modifying or propagating a
|
||||
* covered work, you indicate your acceptance of this License to do so.
|
||||
*
|
||||
* 10. Automatic Licensing of Downstream Recipients.
|
||||
*
|
||||
* Each time you convey a covered work, the recipient automatically
|
||||
* receives a license from the original licensors, to run, modify and
|
||||
* propagate that work, subject to this License. You are not responsible
|
||||
* for enforcing compliance by third parties with this License.
|
||||
*
|
||||
* An "entity transaction" is a transaction transferring control of an
|
||||
* organization, or substantially all assets of one, or subdividing an
|
||||
* organization, or merging organizations. If propagation of a covered
|
||||
* work results from an entity transaction, each party to that
|
||||
* transaction who receives a copy of the work also receives whatever
|
||||
* licenses to the work the party's predecessor in interest had or could
|
||||
* give under the previous paragraph, plus a right to possession of the
|
||||
* Corresponding Source of the work from the predecessor in interest, if
|
||||
* the predecessor has it or can get it with reasonable efforts.
|
||||
*
|
||||
* You may not impose any further restrictions on the exercise of the
|
||||
* rights granted or affirmed under this License. For example, you may
|
||||
* not impose a license fee, royalty, or other charge for exercise of
|
||||
* rights granted under this License, and you may not initiate litigation
|
||||
* (including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
* any patent claim is infringed by making, using, selling, offering for
|
||||
* sale, or importing the Program or any portion of it.
|
||||
*
|
||||
* 11. Patents.
|
||||
*
|
||||
* A "contributor" is a copyright holder who authorizes use under this
|
||||
* License of the Program or a work on which the Program is based. The
|
||||
* work thus licensed is called the contributor's "contributor version".
|
||||
*
|
||||
* A contributor's "essential patent claims" are all patent claims
|
||||
* owned or controlled by the contributor, whether already acquired or
|
||||
* hereafter acquired, that would be infringed by some manner, permitted
|
||||
* by this License, of making, using, or selling its contributor version,
|
||||
* but do not include claims that would be infringed only as a
|
||||
* consequence of further modification of the contributor version. For
|
||||
* purposes of this definition, "control" includes the right to grant
|
||||
* patent sublicenses in a manner consistent with the requirements of
|
||||
* this License.
|
||||
*
|
||||
* Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
* patent license under the contributor's essential patent claims, to
|
||||
* make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
* propagate the contents of its contributor version.
|
||||
*
|
||||
* In the following three paragraphs, a "patent license" is any express
|
||||
* agreement or commitment, however denominated, not to enforce a patent
|
||||
* (such as an express permission to practice a patent or covenant not to
|
||||
* sue for patent infringement). To "grant" such a patent license to a
|
||||
* party means to make such an agreement or commitment not to enforce a
|
||||
* patent against the party.
|
||||
*
|
||||
* If you convey a covered work, knowingly relying on a patent license,
|
||||
* and the Corresponding Source of the work is not available for anyone
|
||||
* to copy, free of charge and under the terms of this License, through a
|
||||
* publicly available network server or other readily accessible means,
|
||||
* then you must either (1) cause the Corresponding Source to be so
|
||||
* available, or (2) arrange to deprive yourself of the benefit of the
|
||||
* patent license for this particular work, or (3) arrange, in a manner
|
||||
* consistent with the requirements of this License, to extend the patent
|
||||
* license to downstream recipients. "Knowingly relying" means you have
|
||||
* actual knowledge that, but for the patent license, your conveying the
|
||||
* covered work in a country, or your recipient's use of the covered work
|
||||
* in a country, would infringe one or more identifiable patents in that
|
||||
* country that you have reason to believe are valid.
|
||||
*
|
||||
* If, pursuant to or in connection with a single transaction or
|
||||
* arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
* covered work, and grant a patent license to some of the parties
|
||||
* receiving the covered work authorizing them to use, propagate, modify
|
||||
* or convey a specific copy of the covered work, then the patent license
|
||||
* you grant is automatically extended to all recipients of the covered
|
||||
* work and works based on it.
|
||||
*
|
||||
* A patent license is "discriminatory" if it does not include within
|
||||
* the scope of its coverage, prohibits the exercise of, or is
|
||||
* conditioned on the non-exercise of one or more of the rights that are
|
||||
* specifically granted under this License. You may not convey a covered
|
||||
* work if you are a party to an arrangement with a third party that is
|
||||
* in the business of distributing software, under which you make payment
|
||||
* to the third party based on the extent of your activity of conveying
|
||||
* the work, and under which the third party grants, to any of the
|
||||
* parties who would receive the covered work from you, a discriminatory
|
||||
* patent license (a) in connection with copies of the covered work
|
||||
* conveyed by you (or copies made from those copies), or (b) primarily
|
||||
* for and in connection with specific products or compilations that
|
||||
* contain the covered work, unless you entered into that arrangement,
|
||||
* or that patent license was granted, prior to 28 March 2007.
|
||||
*
|
||||
* Nothing in this License shall be construed as excluding or limiting
|
||||
* any implied license or other defenses to infringement that may
|
||||
* otherwise be available to you under applicable patent law.
|
||||
*
|
||||
* 12. No Surrender of Others' Freedom.
|
||||
*
|
||||
* If conditions are imposed on you (whether by court order, agreement or
|
||||
* otherwise) that contradict the conditions of this License, they do not
|
||||
* excuse you from the conditions of this License. If you cannot convey a
|
||||
* covered work so as to satisfy simultaneously your obligations under this
|
||||
* License and any other pertinent obligations, then as a consequence you may
|
||||
* not convey it at all. For example, if you agree to terms that obligate you
|
||||
* to collect a royalty for further conveying from those to whom you convey
|
||||
* the Program, the only way you could satisfy both those terms and this
|
||||
* License would be to refrain entirely from conveying the Program.
|
||||
*
|
||||
* 13. Use with the GNU Affero General Public License.
|
||||
*
|
||||
* Notwithstanding any other provision of this License, you have
|
||||
* permission to link or combine any covered work with a work licensed
|
||||
* under version 3 of the GNU Affero General Public License into a single
|
||||
* combined work, and to convey the resulting work. The terms of this
|
||||
* License will continue to apply to the part which is the covered work,
|
||||
* but the special requirements of the GNU Affero General Public License,
|
||||
* section 13, concerning interaction through a network will apply to the
|
||||
* combination as such.
|
||||
*
|
||||
* 14. Revised Versions of this License.
|
||||
*
|
||||
* The Free Software Foundation may publish revised and/or new versions of
|
||||
* the GNU General Public License from time to time. Such new versions will
|
||||
* be similar in spirit to the present version, but may differ in detail to
|
||||
* address new problems or concerns.
|
||||
*
|
||||
* Each version is given a distinguishing version number. If the
|
||||
* Program specifies that a certain numbered version of the GNU General
|
||||
* Public License "or any later version" applies to it, you have the
|
||||
* option of following the terms and conditions either of that numbered
|
||||
* version or of any later version published by the Free Software
|
||||
* Foundation. If the Program does not specify a version number of the
|
||||
* GNU General Public License, you may choose any version ever published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* If the Program specifies that a proxy can decide which future
|
||||
* versions of the GNU General Public License can be used, that proxy's
|
||||
* public statement of acceptance of a version permanently authorizes you
|
||||
* to choose that version for the Program.
|
||||
*
|
||||
* Later license versions may give you additional or different
|
||||
* permissions. However, no additional obligations are imposed on any
|
||||
* author or copyright holder as a result of your choosing to follow a
|
||||
* later version.
|
||||
*
|
||||
* 15. Disclaimer of Warranty.
|
||||
*
|
||||
* THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
* APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
* HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
* IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
* ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* 16. Limitation of Liability.
|
||||
*
|
||||
* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
* WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
* THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
* GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
* USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
* DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
* PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
* EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES.
|
||||
*
|
||||
* 17. Interpretation of Sections 15 and 16.
|
||||
*
|
||||
* If the disclaimer of warranty and limitation of liability provided
|
||||
* above cannot be given local legal effect according to their terms,
|
||||
* reviewing courts shall apply local law that most closely approximates
|
||||
* an absolute waiver of all civil liability in connection with the
|
||||
* Program, unless a warranty or assumption of liability accompanies a
|
||||
* copy of the Program in return for a fee.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* How to Apply These Terms to Your New Programs
|
||||
*
|
||||
* If you develop a new program, and you want it to be of the greatest
|
||||
* possible use to the public, the best way to achieve this is to make it
|
||||
* free software which everyone can redistribute and change under these terms.
|
||||
*
|
||||
* To do so, attach the following notices to the program. It is safest
|
||||
* to attach them to the start of each source file to most effectively
|
||||
* state the exclusion of warranty; and each file should have at least
|
||||
* the "copyright" line and a pointer to where the full notice is found.
|
||||
*
|
||||
* <one line to give the program's name and a brief idea of what it does.>
|
||||
* Copyright (C) <year> <name of author>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Also add information on how to contact you by electronic and paper mail.
|
||||
*
|
||||
* If the program does terminal interaction, make it output a short
|
||||
* notice like this when it starts in an interactive mode:
|
||||
*
|
||||
* <program> Copyright (C) <year> <name of author>
|
||||
* This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
* This is free software, and you are welcome to redistribute it
|
||||
* under certain conditions; type `show c' for details.
|
||||
*
|
||||
* The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
* parts of the General Public License. Of course, your program's commands
|
||||
* might be different; for a GUI interface, you would use an "about box".
|
||||
*
|
||||
* You should also get your employer (if you work as a programmer) or school,
|
||||
* if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
* For more information on this, and how to apply and follow the GNU GPL, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The GNU General Public License does not permit incorporating your program
|
||||
* into proprietary programs. If your program is a subroutine library, you
|
||||
* may consider it more useful to permit linking proprietary applications with
|
||||
* the library. If this is what you want to do, use the GNU Lesser General
|
||||
* Public License instead of this License. But first, please read
|
||||
* <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
*
|
||||
*/
|
||||
|
||||
package io.github.retrooper.packetevents.packetwrappers.handshaking.setprotocol;
|
||||
|
||||
import io.github.retrooper.packetevents.packetwrappers.NMSPacket;
|
||||
import io.github.retrooper.packetevents.packetwrappers.WrappedPacket;
|
||||
|
||||
public class WrappedPacketHandshakingInSetProtocol extends WrappedPacket {
|
||||
|
||||
public WrappedPacketHandshakingInSetProtocol(NMSPacket packet) {
|
||||
super(packet);
|
||||
}
|
||||
|
||||
public int getProtocolVersion() {
|
||||
return readInt(0);
|
||||
}
|
||||
|
||||
public void setProtocolVersion(int protocolVersion) {
|
||||
writeInt(0, protocolVersion);
|
||||
}
|
||||
|
||||
public int getPort() {
|
||||
return readInt(1);
|
||||
}
|
||||
|
||||
public void setPort(int port) {
|
||||
writeInt(1, port);
|
||||
}
|
||||
|
||||
public String getHostName() {
|
||||
return readString(0);
|
||||
}
|
||||
|
||||
public void setHostName(String hostName) {
|
||||
writeString(0, hostName);
|
||||
}
|
||||
}
|
||||
-88
@@ -1,88 +0,0 @@
|
||||
package io.github.retrooper.packetevents.packetwrappers.in.abilities;
|
||||
|
||||
import io.github.retrooper.packetevents.packetwrappers.api.WrappedPacket;
|
||||
import io.github.retrooper.packetevents.utils.NMSUtils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
public class WrappedPacketInAbilities extends WrappedPacket {
|
||||
private boolean isVulnerable;
|
||||
private boolean isFlying;
|
||||
private boolean allowFly;
|
||||
private boolean instantBuild;
|
||||
private float flySpeed;
|
||||
private float walkSpeed;
|
||||
|
||||
public WrappedPacketInAbilities(Object packet) {
|
||||
super(packet);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setup() {
|
||||
try {
|
||||
this.isVulnerable = fields[0].getBoolean(packet);
|
||||
this.isFlying = fields[1].getBoolean(packet);
|
||||
this.allowFly = fields[2].getBoolean(packet);
|
||||
this.instantBuild = fields[3].getBoolean(packet);
|
||||
this.flySpeed = fields[4].getFloat(packet);
|
||||
this.walkSpeed = fields[5].getFloat(packet);
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isVulnerable() {
|
||||
return isVulnerable;
|
||||
}
|
||||
|
||||
public boolean isFlying() {
|
||||
return isFlying;
|
||||
}
|
||||
|
||||
public boolean canFly() {
|
||||
return allowFly;
|
||||
}
|
||||
|
||||
public boolean canInstantlyBuild() {
|
||||
return instantBuild;
|
||||
}
|
||||
|
||||
public float getFlySpeed() {
|
||||
return flySpeed;
|
||||
}
|
||||
|
||||
public float getWalkSpeed() {
|
||||
return walkSpeed;
|
||||
}
|
||||
|
||||
private static Class<?> abilitiesClass;
|
||||
|
||||
private static Field[] fields = new Field[6];
|
||||
|
||||
static {
|
||||
|
||||
try {
|
||||
abilitiesClass = NMSUtils.getNMSClass("PacketPlayInAbilities");
|
||||
} catch (ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
fields[0] = abilitiesClass.getDeclaredField("a");
|
||||
fields[1] = abilitiesClass.getDeclaredField("b");
|
||||
fields[2] = abilitiesClass.getDeclaredField("c");
|
||||
fields[3] = abilitiesClass.getDeclaredField("d");
|
||||
fields[4] = abilitiesClass.getDeclaredField("e");
|
||||
fields[5] = abilitiesClass.getDeclaredField("f");
|
||||
} catch (NoSuchFieldException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
for (Field f : fields) {
|
||||
if (f != null) {
|
||||
f.setAccessible(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
-143
@@ -1,143 +0,0 @@
|
||||
package io.github.retrooper.packetevents.packetwrappers.in.blockdig;
|
||||
|
||||
import io.github.retrooper.packetevents.enums.Direction;
|
||||
import io.github.retrooper.packetevents.enums.PlayerDigType;
|
||||
import io.github.retrooper.packetevents.enums.ServerVersion;
|
||||
import io.github.retrooper.packetevents.packetwrappers.api.WrappedPacket;
|
||||
import io.github.retrooper.packetevents.utils.BaseBlockUtils;
|
||||
import io.github.retrooper.packetevents.utils.NMSUtils;
|
||||
import io.github.retrooper.packetevents.utils.vector.Vector3i;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
public class WrappedPacketInBlockDig extends WrappedPacket {
|
||||
private Vector3i blockPosition;
|
||||
private Direction direction;
|
||||
private PlayerDigType digType;
|
||||
|
||||
public WrappedPacketInBlockDig(Object packet) {
|
||||
super(packet);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void setup() {
|
||||
Direction enumDirection = null;
|
||||
PlayerDigType enumDigType = null;
|
||||
//1.7.10
|
||||
try {
|
||||
if (version == ServerVersion.v_1_7_10) {
|
||||
final int x = fields[0].getInt(packet);
|
||||
final int y = fields[1].getInt(packet);
|
||||
final int z = fields[2].getInt(packet);
|
||||
|
||||
this.blockPosition = new Vector3i(x, y, z);
|
||||
|
||||
enumDirection = Direction.get((byte) face.getInt(packet));
|
||||
enumDigType = PlayerDigType.get((byte) e.getInt(packet));
|
||||
} else {
|
||||
//1.8+
|
||||
final Object blockPosObj = fields[0].get(packet);
|
||||
final Object enumDirectionObj = fields[1].get(packet);
|
||||
final Object digTypeObj = fields[2].get(packet);
|
||||
|
||||
final int x = blockPosXYZ[0].getInt(blockPosObj);
|
||||
final int y = blockPosXYZ[1].getInt(blockPosObj);
|
||||
final int z = blockPosXYZ[2].getInt(blockPosObj);
|
||||
|
||||
this.blockPosition = new Vector3i(x, y, z);
|
||||
|
||||
enumDirection = Direction.valueOf(((Enum) enumDirectionObj).name());
|
||||
enumDigType = PlayerDigType.valueOf(((Enum) digTypeObj).name());
|
||||
}
|
||||
}
|
||||
catch(IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
this.direction = enumDirection;
|
||||
this.digType = enumDigType;
|
||||
}
|
||||
|
||||
public Vector3i getBlockPosition() {
|
||||
return blockPosition;
|
||||
}
|
||||
|
||||
public Direction getDirection() {
|
||||
return direction;
|
||||
}
|
||||
|
||||
public PlayerDigType getDigType() {
|
||||
return digType;
|
||||
}
|
||||
|
||||
//ALL
|
||||
private static Class<?> blockDigClass;
|
||||
|
||||
|
||||
//1.8
|
||||
private static Field[] fields = new Field[3];
|
||||
|
||||
private static Class<?> blockPositionClass;
|
||||
|
||||
private static Field[] blockPosXYZ = new Field[3];
|
||||
|
||||
//1.7
|
||||
private static Field face;
|
||||
|
||||
private static Field e;
|
||||
|
||||
static {
|
||||
|
||||
try {
|
||||
blockDigClass = NMSUtils.getNMSClass("PacketPlayInBlockDig");
|
||||
if (version != ServerVersion.v_1_7_10) {
|
||||
blockPositionClass = NMSUtils.getNMSClass("BlockPosition");
|
||||
}
|
||||
} catch (ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
//blockpos
|
||||
fields[0] = blockDigClass.getDeclaredField("a");
|
||||
//direction
|
||||
fields[1] = blockDigClass.getDeclaredField("b");
|
||||
//digtype
|
||||
fields[2] = blockDigClass.getDeclaredField("c");
|
||||
|
||||
if (version != ServerVersion.v_1_7_10) {
|
||||
blockPosXYZ[0] = blockPositionClass.getSuperclass().getDeclaredField(BaseBlockUtils.getPosXFieldName());
|
||||
blockPosXYZ[1] = blockPositionClass.getSuperclass().getDeclaredField(BaseBlockUtils.getPosXFieldName());
|
||||
blockPosXYZ[2] = blockPositionClass.getSuperclass().getDeclaredField(BaseBlockUtils.getPosZFieldName());
|
||||
} else {
|
||||
face = blockDigClass.getDeclaredField("face");
|
||||
e = blockDigClass.getDeclaredField("e");
|
||||
}
|
||||
} catch (NoSuchFieldException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
for(Field f : fields) {
|
||||
if(f != null) {
|
||||
f.setAccessible(true);
|
||||
}
|
||||
}
|
||||
|
||||
for(Field f : blockPosXYZ) {
|
||||
if(f != null) {
|
||||
f.setAccessible(true);
|
||||
}
|
||||
}
|
||||
|
||||
if(e != null) {
|
||||
e.setAccessible(true);
|
||||
}
|
||||
|
||||
if(face != null) {
|
||||
face.setAccessible(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Loaded 100 of 267 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user