mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2026-02-18 09:43:00 +01:00
Compare commits
1155 Commits
api
...
commandson
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7afdb0ec9c | ||
|
|
0af8b2c41d | ||
|
|
b12f86a04d | ||
|
|
c377544fa2 | ||
|
|
e6c62beed9 | ||
|
|
0424a5dd12 | ||
|
|
b91fa2cf37 | ||
|
|
6acc4b1ec6 | ||
|
|
41b5667cd4 | ||
|
|
b60e478aec | ||
|
|
6aa4deedc0 | ||
|
|
4c578eb1c5 | ||
|
|
e6199c0a7a | ||
|
|
87277a0d6f | ||
|
|
3c853a266a | ||
|
|
e52371aeb3 | ||
|
|
f322d05159 | ||
|
|
c1ce6c84a5 | ||
|
|
e891bf2067 | ||
|
|
ab79131485 | ||
|
|
9eb8f4e918 | ||
|
|
4def2be918 | ||
|
|
547fc29c91 | ||
|
|
3d16d9432d | ||
|
|
5e9ee1e275 | ||
|
|
12127ff25b | ||
|
|
382b86ad34 | ||
|
|
27a232d03e | ||
|
|
ce7461f459 | ||
|
|
175526d3da | ||
|
|
1430ea2979 | ||
|
|
b54db979f5 | ||
|
|
045f1bdfb6 | ||
|
|
c3103beea2 | ||
|
|
f7dbd884f4 | ||
|
|
8c89462b0a | ||
|
|
bcf0f06fb9 | ||
|
|
2ba67d1393 | ||
|
|
a8976ae953 | ||
|
|
f3a2199fd6 | ||
|
|
bea283e56c | ||
|
|
13a329d4ae | ||
|
|
65d4d2b059 | ||
|
|
61c5ded677 | ||
|
|
5c12606e8c | ||
|
|
99e8ae3722 | ||
|
|
5b67aa04c4 | ||
|
|
35785283ee | ||
|
|
7e1e4c8305 | ||
|
|
f69f88add7 | ||
|
|
82af006ea4 | ||
|
|
1005b29e96 | ||
|
|
2efe1efc50 | ||
|
|
3d04b92827 | ||
|
|
4259b5ec6d | ||
|
|
182e228ebd | ||
|
|
bc6e4bc056 | ||
|
|
44b22559fb | ||
|
|
0408040d7a | ||
|
|
571a60f7a7 | ||
|
|
b2bf29cae2 | ||
|
|
6ad9d97236 | ||
|
|
6df73e522e | ||
|
|
e6f3d63923 | ||
|
|
871374ce84 | ||
|
|
363ae7351f | ||
|
|
be0570fccb | ||
|
|
9d5566ae0e | ||
|
|
125aefacbb | ||
|
|
b48d66abbe | ||
|
|
752174ad6d | ||
|
|
ef2aa57be3 | ||
|
|
25c89c5bd3 | ||
|
|
c2ecefb2a8 | ||
|
|
de4d0ea0a7 | ||
|
|
86b457861c | ||
|
|
c61376d97d | ||
|
|
2618cfbe78 | ||
|
|
0637446cd5 | ||
|
|
af60826843 | ||
|
|
b36848bd47 | ||
|
|
dab4e777ce | ||
|
|
0063a4f9b6 | ||
|
|
bfbefa78f5 | ||
|
|
1db0aae46b | ||
|
|
90fe8ee882 | ||
|
|
ad771fddc5 | ||
|
|
b4d9337329 | ||
|
|
dae66c7433 | ||
|
|
b5478a947e | ||
|
|
6a9962a2dc | ||
|
|
d8d2d00f42 | ||
|
|
02d978036a | ||
|
|
16d5d9f95f | ||
|
|
18bd31da40 | ||
|
|
6b5b0f301c | ||
|
|
c7feac19dd | ||
|
|
6dd175331c | ||
|
|
1b6b127ef4 | ||
|
|
03514521b4 | ||
|
|
7883b0914a | ||
|
|
a93f08a97b | ||
|
|
91ab569b81 | ||
|
|
19bf96ab33 | ||
|
|
827b894257 | ||
|
|
69e90a89f7 | ||
|
|
570cadb276 | ||
|
|
79ad86ff29 | ||
|
|
4cb3d3181b | ||
|
|
b928e145b6 | ||
|
|
c52b855ae1 | ||
|
|
b4871fe49f | ||
|
|
04eefaef79 | ||
|
|
b5ecd214ef | ||
|
|
2ea9cff2cd | ||
|
|
f90a15a821 | ||
|
|
c54a758e7f | ||
|
|
3f5f510fc5 | ||
|
|
f304a1fbb9 | ||
|
|
6f92baf0b5 | ||
|
|
406a7ba694 | ||
|
|
04007f6dbc | ||
|
|
6ed4ad76cd | ||
|
|
3aaff1911b | ||
|
|
f0973f2500 | ||
|
|
4ba85aa444 | ||
|
|
9f7dbc23f6 | ||
|
|
39b0e87b9a | ||
|
|
ce18f3df97 | ||
|
|
03c9dfda02 | ||
|
|
60da4bcd68 | ||
|
|
9d5bebef52 | ||
|
|
99bb5857f8 | ||
|
|
571013cf55 | ||
|
|
8087d5f647 | ||
|
|
d7e8a6b7c1 | ||
|
|
ddb701bc94 | ||
|
|
d42581b24f | ||
|
|
d5c4bebfad | ||
|
|
5c68a176e5 | ||
|
|
3d7810c568 | ||
|
|
8b81c9aafe | ||
|
|
582a572272 | ||
|
|
038d913f87 | ||
|
|
fe46ece008 | ||
|
|
1c08cac2f8 | ||
|
|
2fd86e870f | ||
|
|
8c2848a3e7 | ||
|
|
f623b608f6 | ||
|
|
bac16238ac | ||
|
|
9b046bd490 | ||
|
|
88cacf8fff | ||
|
|
5cc97383fa | ||
|
|
b87efb3f76 | ||
|
|
cfe3accf57 | ||
|
|
dcf83a8d20 | ||
|
|
93bb160742 | ||
|
|
f67e30641d | ||
|
|
969b901615 | ||
|
|
c7409a8f9b | ||
|
|
684583c19b | ||
|
|
3065c71c25 | ||
|
|
afa4260d0d | ||
|
|
486dc1344d | ||
|
|
bda5424a4c | ||
|
|
e886a16388 | ||
|
|
248116df21 | ||
|
|
c6791c81cf | ||
|
|
a0a9d98c80 | ||
|
|
fe01312136 | ||
|
|
2debcbefd0 | ||
|
|
ce8464fcfe | ||
|
|
99d8b64589 | ||
|
|
25a55d6d4d | ||
|
|
34c61afa72 | ||
|
|
4c4d7ee100 | ||
|
|
e96e65e25d | ||
|
|
ed8d1cdd33 | ||
|
|
e9b919f210 | ||
|
|
600ab0eea7 | ||
|
|
940fb66652 | ||
|
|
971e5da0ad | ||
|
|
02c732bdf2 | ||
|
|
e32bde3c32 | ||
|
|
a11ac782fa | ||
|
|
10e8b19e53 | ||
|
|
ac3c6da298 | ||
|
|
4fce053804 | ||
|
|
eeecf18caf | ||
|
|
b9b1127087 | ||
|
|
009f64cba1 | ||
|
|
2a4487cde2 | ||
|
|
8633f7b63a | ||
|
|
0708b0a6a2 | ||
|
|
6c1502fc67 | ||
|
|
4277384c22 | ||
|
|
590b00aeca | ||
|
|
2f1278c784 | ||
|
|
d0ab2bdb2f | ||
|
|
7266563ca9 | ||
|
|
364d4cd6e7 | ||
|
|
32ff8c6818 | ||
|
|
fc600796ca | ||
|
|
db9f8e46d1 | ||
|
|
19a8a9ff52 | ||
|
|
ab8ba8acbe | ||
|
|
d38404927b | ||
|
|
b65247cbb0 | ||
|
|
9b09f06ad8 | ||
|
|
8b82163e3d | ||
|
|
c2054a5d45 | ||
|
|
46c9ea5a25 | ||
|
|
e6ff219a5c | ||
|
|
fc66c9f3fd | ||
|
|
8d2a08c421 | ||
|
|
291effdbc8 | ||
|
|
435a6fde34 | ||
|
|
3ba6b93135 | ||
|
|
17052861d1 | ||
|
|
cae2132d8d | ||
|
|
ed0c9469e2 | ||
|
|
64206c3ac8 | ||
|
|
0bf1bbe6ac | ||
|
|
b3edca5304 | ||
|
|
07b4736be3 | ||
|
|
df6ddd6faa | ||
|
|
fb0c8ec934 | ||
|
|
5ba6305ad4 | ||
|
|
75561350c1 | ||
|
|
5b822bc626 | ||
|
|
e29a977b9a | ||
|
|
78558107b3 | ||
|
|
5628df988f | ||
|
|
c078e853eb | ||
|
|
0db5330416 | ||
|
|
1cac6b1165 | ||
|
|
c0952a2ba3 | ||
|
|
4d98d25215 | ||
|
|
ffc6061f8b | ||
|
|
0363ee2e90 | ||
|
|
b6e512b09e | ||
|
|
aecf17a2a2 | ||
|
|
c769813892 | ||
|
|
e509876658 | ||
|
|
a047bca94c | ||
|
|
b5a50da09b | ||
|
|
2d79b364db | ||
|
|
657d7cafa7 | ||
|
|
d92c60fc84 | ||
|
|
b56ddebde8 | ||
|
|
cf49fc7599 | ||
|
|
86a5d14a9b | ||
|
|
d45e48c401 | ||
|
|
77f6a3945f | ||
|
|
6016e69663 | ||
|
|
8902c86864 | ||
|
|
f6d2479f2e | ||
|
|
81ac48904c | ||
|
|
2594dc1bca | ||
|
|
bead5feb14 | ||
|
|
ed8c8107f9 | ||
|
|
b6697141f7 | ||
|
|
04ed2a47d4 | ||
|
|
7da8c8c83a | ||
|
|
4d060b192b | ||
|
|
2117c67084 | ||
|
|
4d85f24d98 | ||
|
|
416c5383c9 | ||
|
|
7f9ed94d23 | ||
|
|
b0d0030d60 | ||
|
|
cdc187b211 | ||
|
|
3361d28887 | ||
|
|
c358c8ce0b | ||
|
|
9b5be855fd | ||
|
|
aa65be0e1b | ||
|
|
0650731723 | ||
|
|
37949d07f6 | ||
|
|
3bc7b8eee7 | ||
|
|
85f27fdbdb | ||
|
|
5bfca3c218 | ||
|
|
847095aff4 | ||
|
|
c5ec99ab51 | ||
|
|
94754b150c | ||
|
|
415e3df226 | ||
|
|
b5608ccb01 | ||
|
|
d57e225576 | ||
|
|
2f166507ca | ||
|
|
347e6112fb | ||
|
|
65dfcb492d | ||
|
|
23a549a6d3 | ||
|
|
a522ab7b2f | ||
|
|
a0923ad786 | ||
|
|
dd04ee48b9 | ||
|
|
89b895af81 | ||
|
|
9e1f5b44a6 | ||
|
|
a54590576f | ||
|
|
06160c6d04 | ||
|
|
12e5a7f054 | ||
|
|
1f20e6344b | ||
|
|
13ba51cdf1 | ||
|
|
4f22391465 | ||
|
|
5f1a545437 | ||
|
|
bad7023129 | ||
|
|
785f18c13a | ||
|
|
302b07f221 | ||
|
|
edab455581 | ||
|
|
2d8bdbded8 | ||
|
|
357995ecb0 | ||
|
|
3e26eca48e | ||
|
|
dd339c20ea | ||
|
|
c34230a82e | ||
|
|
c1a4cc2c97 | ||
|
|
02cacb9e94 | ||
|
|
899a37edbc | ||
|
|
753834e1fc | ||
|
|
192626f4da | ||
|
|
656beb34ef | ||
|
|
8ee282beec | ||
|
|
eb8c5bf0e9 | ||
|
|
027b79639b | ||
|
|
24a57fab3d | ||
|
|
78596dc00e | ||
|
|
0b1b753d4c | ||
|
|
3cbdcddcc1 | ||
|
|
25ecb6e1de | ||
|
|
019d22d92a | ||
|
|
e39022cc64 | ||
|
|
a41106ee30 | ||
|
|
b2110d4e1c | ||
|
|
f22043ebb5 | ||
|
|
cc1b511c02 | ||
|
|
e9a020565f | ||
|
|
44ab8d93ab | ||
|
|
78922ea337 | ||
|
|
db01b61371 | ||
|
|
133a60c4bf | ||
|
|
684e96ff6b | ||
|
|
f40f68bdf0 | ||
|
|
640f4b0a9b | ||
|
|
978ee4a9a3 | ||
|
|
0ab93586fd | ||
|
|
921a0228db | ||
|
|
ac68c4ebe6 | ||
|
|
4553310bb9 | ||
|
|
9b0632d63c | ||
|
|
69ef484b86 | ||
|
|
606a92f1ef | ||
|
|
79730383ab | ||
|
|
7264e1a8d6 | ||
|
|
e011f545a7 | ||
|
|
283fa14380 | ||
|
|
5f388a9906 | ||
|
|
cd96bc79d8 | ||
|
|
ae961caeab | ||
|
|
0b4d87aebc | ||
|
|
6106f70c24 | ||
|
|
100a7f8a8f | ||
|
|
4c792c4f2c | ||
|
|
db4b820f80 | ||
|
|
ca710b4302 | ||
|
|
668cc0e4a3 | ||
|
|
6d0542b524 | ||
|
|
d84a5b37b7 | ||
|
|
c072ae4990 | ||
|
|
2d78eaa495 | ||
|
|
6bdc51be76 | ||
|
|
af15617196 | ||
|
|
643dff7915 | ||
|
|
01fbfccc0d | ||
|
|
2362fe994a | ||
|
|
08b08b1285 | ||
|
|
965540dfaf | ||
|
|
75822472fc | ||
|
|
59aecb79a1 | ||
|
|
c865c2d2e3 | ||
|
|
93c64a8770 | ||
|
|
30ac82181e | ||
|
|
2b219f48ec | ||
|
|
fed0483d40 | ||
|
|
101c43a4bc | ||
|
|
fb738d85f6 | ||
|
|
032a407c8a | ||
|
|
33e615f0f1 | ||
|
|
8feba60e2c | ||
|
|
8a4fe8ae5d | ||
|
|
45f96793a5 | ||
|
|
df0362bcba | ||
|
|
25d558a5fa | ||
|
|
c0e4d7a43d | ||
|
|
993b418fbc | ||
|
|
9cf856221d | ||
|
|
4db6e03517 | ||
|
|
eb1393c02c | ||
|
|
e1a54b72a9 | ||
|
|
b266c7ce5b | ||
|
|
38f937fa01 | ||
|
|
6d7982c0cf | ||
|
|
89fa26d0eb | ||
|
|
edd85c2f19 | ||
|
|
88b6517f88 | ||
|
|
2c09a0fdb6 | ||
|
|
90721ee859 | ||
|
|
aa4011a226 | ||
|
|
fa82fe8e67 | ||
|
|
444e1532f2 | ||
|
|
1a34d2f647 | ||
|
|
d543843235 | ||
|
|
c40af913f4 | ||
|
|
f6268fe291 | ||
|
|
27854720f0 | ||
|
|
d19cf1e260 | ||
|
|
4a8630262e | ||
|
|
c41d2d1f39 | ||
|
|
8821fb0b2f | ||
|
|
5ab55c1653 | ||
|
|
8066f7f7f2 | ||
|
|
5ea18e8ba7 | ||
|
|
0bf3f98d95 | ||
|
|
fa33fa3d32 | ||
|
|
8b6a4c1e5b | ||
|
|
0ccd89fad4 | ||
|
|
16e90da8fd | ||
|
|
86e7bfbf89 | ||
|
|
8f0fb76847 | ||
|
|
3be15d3f65 | ||
|
|
74ced18bd0 | ||
|
|
2e0a371ed8 | ||
|
|
68ffe31246 | ||
|
|
405de477d3 | ||
|
|
db0ae36fa7 | ||
|
|
5d2028b5dc | ||
|
|
3e645a022d | ||
|
|
c21a040ddb | ||
|
|
dd4a5a6b9a | ||
|
|
d5ce8fc6ff | ||
|
|
829aaea5d4 | ||
|
|
c92ae16c7f | ||
|
|
40160498ca | ||
|
|
9d08d88f2a | ||
|
|
2ca3544741 | ||
|
|
ef714f98c9 | ||
|
|
dd550feb65 | ||
|
|
ddc9a69f4b | ||
|
|
61388f46f1 | ||
|
|
341dc45202 | ||
|
|
13f7482b39 | ||
|
|
a78dcffde7 | ||
|
|
3671d0b565 | ||
|
|
1b11fd2369 | ||
|
|
c36ff85cbf | ||
|
|
77cefbdfab | ||
|
|
fbe0cd1471 | ||
|
|
728ba512c3 | ||
|
|
10470dde13 | ||
|
|
11245e87ef | ||
|
|
b88d752f61 | ||
|
|
09ce259288 | ||
|
|
519d469cb2 | ||
|
|
cf67e3502a | ||
|
|
9ab4584dfe | ||
|
|
8d27e8fccf | ||
|
|
ba1f15b655 | ||
|
|
5b1a69b3f7 | ||
|
|
d185c7538c | ||
|
|
2347fc294f | ||
|
|
7aaec5b707 | ||
|
|
20a713e04d | ||
|
|
81faf93f31 | ||
|
|
19c0f6757e | ||
|
|
ec0815043e | ||
|
|
182717eacf | ||
|
|
e287ad47d1 | ||
|
|
8eee39b88b | ||
|
|
4bf2ad46ea | ||
|
|
def676d8d7 | ||
|
|
f8433cdbcc | ||
|
|
a2e10dbd0c | ||
|
|
e55ce00d62 | ||
|
|
73c465ee64 | ||
|
|
c30892a0a5 | ||
|
|
58e7323c3e | ||
|
|
7fc6577196 | ||
|
|
162c605dac | ||
|
|
280eb0ba51 | ||
|
|
8e5251ba66 | ||
|
|
1e43e34547 | ||
|
|
5575309b79 | ||
|
|
88dae5d5dd | ||
|
|
da3909c08f | ||
|
|
6cad4993ed | ||
|
|
af6e6b9545 | ||
|
|
cd937a812d | ||
|
|
264c0e2c78 | ||
|
|
b42278932e | ||
|
|
7fc7125ed3 | ||
|
|
d3f012de27 | ||
|
|
dfa16c70a7 | ||
|
|
8805a25d85 | ||
|
|
f91a2217c8 | ||
|
|
64f1ae4af6 | ||
|
|
6d9a9d165d | ||
|
|
5edc0d065d | ||
|
|
a346fc3338 | ||
|
|
dc94fedee1 | ||
|
|
93a6a73b4e | ||
|
|
2c849d9cb4 | ||
|
|
b79d452a6d | ||
|
|
fb94374e3c | ||
|
|
5255ae846d | ||
|
|
e816310da8 | ||
|
|
de6ba4fb6a | ||
|
|
e35bfe758c | ||
|
|
fffbacd239 | ||
|
|
f286af3fff | ||
|
|
7e28799f94 | ||
|
|
78dc56d263 | ||
|
|
e3dfdfc6ee | ||
|
|
4819a45be9 | ||
|
|
5e0f8a334d | ||
|
|
5f0cc2b09a | ||
|
|
6ff37c8baa | ||
|
|
f7dc72359b | ||
|
|
1ab5b82b22 | ||
|
|
28c6c90f23 | ||
|
|
9bb38e3193 | ||
|
|
551fac84a5 | ||
|
|
0bc25b263b | ||
|
|
fa9a3ae766 | ||
|
|
33df92ea3a | ||
|
|
c3d86ba6c5 | ||
|
|
b569b9456e | ||
|
|
4e6e58d9ca | ||
|
|
619eec7667 | ||
|
|
97cfb1cfc7 | ||
|
|
c28c8d164a | ||
|
|
e74e1e6829 | ||
|
|
6dbc7adf48 | ||
|
|
cbaef4a092 | ||
|
|
eb10bcbc96 | ||
|
|
2875545fa4 | ||
|
|
be595f2568 | ||
|
|
882f6197c6 | ||
|
|
0d2f370185 | ||
|
|
da1fcfe30a | ||
|
|
f983f95961 | ||
|
|
d67c561fed | ||
|
|
989f7fd51b | ||
|
|
e4b8b74987 | ||
|
|
9e7bb12dc3 | ||
|
|
95c291d630 | ||
|
|
9b4070d971 | ||
|
|
6d0fe4fb58 | ||
|
|
394e9e5110 | ||
|
|
5416d1b36e | ||
|
|
9a4ec456ad | ||
|
|
71edf0e9f4 | ||
|
|
c8b1a17194 | ||
|
|
77a7b98659 | ||
|
|
aa562a4710 | ||
|
|
317f966f73 | ||
|
|
a844f27093 | ||
|
|
2c44590c52 | ||
|
|
16f79b9fbc | ||
|
|
c29f311f1e | ||
|
|
81a3441d62 | ||
|
|
cfe1fd2b26 | ||
|
|
3d5c8e154a | ||
|
|
fee2b93b4b | ||
|
|
76ebd85afa | ||
|
|
7393421607 | ||
|
|
04459f1ea7 | ||
|
|
8027b4741e | ||
|
|
8fdc611fb0 | ||
|
|
48de5057a4 | ||
|
|
1269652e94 | ||
|
|
522f40f0fe | ||
|
|
e42eeb1dc4 | ||
|
|
4f5f3aff80 | ||
|
|
b9201b89b8 | ||
|
|
f2357a04ae | ||
|
|
c9b0383600 | ||
|
|
729a91443a | ||
|
|
bb57e6d464 | ||
|
|
700a7f4d35 | ||
|
|
22b24b4774 | ||
|
|
d9e195f63a | ||
|
|
e6239936d2 | ||
|
|
f7339277f8 | ||
|
|
5b4af3f9ce | ||
|
|
9f22cef175 | ||
|
|
85f3221a60 | ||
|
|
60013c710b | ||
|
|
aca1d6c0b1 | ||
|
|
834ccc946a | ||
|
|
323f496420 | ||
|
|
be44c0e417 | ||
|
|
cfdcc9dee5 | ||
|
|
29613bc324 | ||
|
|
c1c32cb1fd | ||
|
|
6d057c577e | ||
|
|
e7978a6ad9 | ||
|
|
56f9341f8e | ||
|
|
e76fb9ab1b | ||
|
|
ccf5f30011 | ||
|
|
483d23c04d | ||
|
|
611705bce1 | ||
|
|
80aac93fd2 | ||
|
|
74d0d2c3f9 | ||
|
|
241df06707 | ||
|
|
eec5feb2bf | ||
|
|
5080d86e44 | ||
|
|
0636f578dd | ||
|
|
6336101992 | ||
|
|
ef48fbee89 | ||
|
|
10d9aa14f1 | ||
|
|
44c820089c | ||
|
|
c526208da4 | ||
|
|
eb8af69605 | ||
|
|
2db7d83216 | ||
|
|
4c237b2e9c | ||
|
|
2d11b7befc | ||
|
|
c5f4666525 | ||
|
|
3b7f416ed9 | ||
|
|
db55635f0d | ||
|
|
fe713c9931 | ||
|
|
716272fefc | ||
|
|
e8577e4a9e | ||
|
|
3e60dfcf98 | ||
|
|
d25784bf41 | ||
|
|
a2ee4be86a | ||
|
|
002887e244 | ||
|
|
48afb81174 | ||
|
|
a58a3d91dc | ||
|
|
affecfeeeb | ||
|
|
48bf79055a | ||
|
|
0cb3d91f0e | ||
|
|
1e91ba156d | ||
|
|
72958bb0f3 | ||
|
|
0ae83420e6 | ||
|
|
a2ba406fe5 | ||
|
|
f01efd92f5 | ||
|
|
a3cc520005 | ||
|
|
0d955c3a94 | ||
|
|
aa734c8b1a | ||
|
|
0577701fd7 | ||
|
|
6b309f628a | ||
|
|
fdefea3235 | ||
|
|
ae538d8c72 | ||
|
|
50eadb2e8d | ||
|
|
f69c678f6c | ||
|
|
d98bcea845 | ||
|
|
fbd2eeb93d | ||
|
|
c27b8dbd66 | ||
|
|
df56d93aaa | ||
|
|
80e9111f78 | ||
|
|
b189614d8d | ||
|
|
7c8e14fd74 | ||
|
|
fc3e580550 | ||
|
|
eea922c31f | ||
|
|
e40ab38bbd | ||
|
|
2c5e11138b | ||
|
|
317dc814a4 | ||
|
|
f52effb0fb | ||
|
|
71d1f42cf4 | ||
|
|
49f1154e65 | ||
|
|
4f08c69557 | ||
|
|
13a2d03444 | ||
|
|
c7a8d74963 | ||
|
|
076d7a7f87 | ||
|
|
667b9a2226 | ||
|
|
312206eda5 | ||
|
|
dc2c099231 | ||
|
|
49d4e97930 | ||
|
|
444d5edd66 | ||
|
|
b181fb4568 | ||
|
|
06990c858e | ||
|
|
6cec253243 | ||
|
|
75db0af01d | ||
|
|
4a048b47cb | ||
|
|
7d5bcf3ebf | ||
|
|
0979ef555b | ||
|
|
91204262f5 | ||
|
|
eb1e657af1 | ||
|
|
2203d61c10 | ||
|
|
d77c8c88a3 | ||
|
|
7755875dbf | ||
|
|
72116d809b | ||
|
|
e95b7f72a7 | ||
|
|
e8a0e6e4a4 | ||
|
|
6c69cd2aea | ||
|
|
f4976e5ecb | ||
|
|
4402484d47 | ||
|
|
935ab22477 | ||
|
|
f9097087fe | ||
|
|
8e5f2b804b | ||
|
|
12d0a220da | ||
|
|
89c368e481 | ||
|
|
5e35a65fbf | ||
|
|
92efd59760 | ||
|
|
31076e6ba9 | ||
|
|
b59d1afdb4 | ||
|
|
72264205d0 | ||
|
|
a425ebcd10 | ||
|
|
5baccd626f | ||
|
|
37610f76ce | ||
|
|
4bd9ee0aa5 | ||
|
|
e38bc14e86 | ||
|
|
afd2b50900 | ||
|
|
ac618cf48a | ||
|
|
4eecd34494 | ||
|
|
713b0619c3 | ||
|
|
735a90fb35 | ||
|
|
82b0304091 | ||
|
|
06e38c991a | ||
|
|
ef1a8f8194 | ||
|
|
db2c0e89e7 | ||
|
|
b8932802b7 | ||
|
|
f9144e624a | ||
|
|
085c8dbf68 | ||
|
|
890d270147 | ||
|
|
369b34406e | ||
|
|
1c1abe9a2a | ||
|
|
2b4c84b1e8 | ||
|
|
6eb894ba3a | ||
|
|
6ef0a36cb0 | ||
|
|
e63ce103a2 | ||
|
|
68c7de16a8 | ||
|
|
9a5b1406b3 | ||
|
|
e584697b69 | ||
|
|
46d69f2108 | ||
|
|
998495f268 | ||
|
|
b94b14a06c | ||
|
|
d9740bdfb8 | ||
|
|
85bf33fca0 | ||
|
|
cf21a5a163 | ||
|
|
ec35efbf1b | ||
|
|
c6d700c5a7 | ||
|
|
a225d604ef | ||
|
|
52ac1cc522 | ||
|
|
bf9bb6ffd8 | ||
|
|
27ae7ae1a7 | ||
|
|
a85fd024b2 | ||
|
|
6e63007068 | ||
|
|
6c5eb72ab4 | ||
|
|
67f29d52b3 | ||
|
|
8181743114 | ||
|
|
f43f3a7fb1 | ||
|
|
4b4643f510 | ||
|
|
1b5dd86796 | ||
|
|
80a1b3949e | ||
|
|
4fea5438fe | ||
|
|
ac57615383 | ||
|
|
c44e280773 | ||
|
|
2835c5fc5e | ||
|
|
bd9794e744 | ||
|
|
f72497532f | ||
|
|
fecaef8d96 | ||
|
|
cbbfcf655a | ||
|
|
c64e693861 | ||
|
|
ade6fb2c1d | ||
|
|
f38d92497a | ||
|
|
801c2c83e2 | ||
|
|
3cd09b886f | ||
|
|
ba7b6826b4 | ||
|
|
0b8f4b4733 | ||
|
|
1c9592aba3 | ||
|
|
7bc01571ee | ||
|
|
dd07bcafc6 | ||
|
|
888205fd89 | ||
|
|
7ea6809fd3 | ||
|
|
7931a095fe | ||
|
|
867d222062 | ||
|
|
a57e6d3bbe | ||
|
|
9e2d5aada8 | ||
|
|
4aa17e61fc | ||
|
|
597eb7f8dd | ||
|
|
4fa3d913bf | ||
|
|
00a6d52717 | ||
|
|
26ef4cc411 | ||
|
|
05f07c174b | ||
|
|
eff016c0a6 | ||
|
|
7ea3a2bf07 | ||
|
|
cddf619518 | ||
|
|
5b41b04777 | ||
|
|
10694042e9 | ||
|
|
d08c9391b0 | ||
|
|
a39c7420b9 | ||
|
|
e0d85f842b | ||
|
|
0fa1d822d4 | ||
|
|
bec54d93ac | ||
|
|
1408065768 | ||
|
|
67a4b6c7c1 | ||
|
|
556515eefd | ||
|
|
0466a28a5f | ||
|
|
9180879164 | ||
|
|
fbecbc167a | ||
|
|
959d1e4a05 | ||
|
|
0d4e1b3ba6 | ||
|
|
a8d81a2080 | ||
|
|
42d3dc3925 | ||
|
|
e4af53a535 | ||
|
|
9ba8af9f6e | ||
|
|
56b376eb54 | ||
|
|
c408c7d057 | ||
|
|
c05c8e1b1d | ||
|
|
3f6de1c4ba | ||
|
|
8ee405fbfd | ||
|
|
2664ae4bd6 | ||
|
|
aed4cb87be | ||
|
|
006a7bf277 | ||
|
|
d0d05a33f8 | ||
|
|
01f31e76f5 | ||
|
|
7802d54ebd | ||
|
|
dd3d324415 | ||
|
|
8ff345af38 | ||
|
|
bab13f32e7 | ||
|
|
3c9c8556dd | ||
|
|
d9f98b1aa9 | ||
|
|
0f4455d5a8 | ||
|
|
bdee0278a5 | ||
|
|
ac31a3dc0e | ||
|
|
2162c81b21 | ||
|
|
8b62c0b693 | ||
|
|
31e0f1e4da | ||
|
|
14a6e5c603 | ||
|
|
652a9519c1 | ||
|
|
31134b38de | ||
|
|
a4ef322fa5 | ||
|
|
e8d51f42f3 | ||
|
|
4d386f2e61 | ||
|
|
1046007b7a | ||
|
|
2de52c7955 | ||
|
|
8c52884ac6 | ||
|
|
22a738bace | ||
|
|
dfc2691cd6 | ||
|
|
16aa6d65ac | ||
|
|
58e634e53a | ||
|
|
bb37edaa7f | ||
|
|
0e09ac397d | ||
|
|
c4072ee90d | ||
|
|
b7cf84299a | ||
|
|
439a69cc5b | ||
|
|
a114886454 | ||
|
|
7f213ee305 | ||
|
|
958fb6f044 | ||
|
|
dacd846fe7 | ||
|
|
0ce316e428 | ||
|
|
bcd260d9c1 | ||
|
|
ab276ffe33 | ||
|
|
c54161b7d1 | ||
|
|
cf86e79e87 | ||
|
|
bc53714ac8 | ||
|
|
db8086d6ad | ||
|
|
915855363d | ||
|
|
c22a65f9f3 | ||
|
|
128ba88e64 | ||
|
|
4fd8f6d647 | ||
|
|
cfcdcd1676 | ||
|
|
f346d3b758 | ||
|
|
477d6932cd | ||
|
|
b31e1e533b | ||
|
|
8f6819edc5 | ||
|
|
7887232d93 | ||
|
|
b0afdccfa5 | ||
|
|
592851e80b | ||
|
|
c9b950d0c8 | ||
|
|
d9e99b08db | ||
|
|
06334da7f8 | ||
|
|
ba7e235e64 | ||
|
|
f4f6abd9d5 | ||
|
|
da06d5c075 | ||
|
|
34d9f70ac0 | ||
|
|
8c5123f494 | ||
|
|
4abf64f625 | ||
|
|
1383457eba | ||
|
|
bd48680125 | ||
|
|
0f15f234b5 | ||
|
|
5b6a57d7a8 | ||
|
|
a4fd632d53 | ||
|
|
b2cdffe965 | ||
|
|
15578bb84e | ||
|
|
329de942b4 | ||
|
|
96ed228d7c | ||
|
|
cb9c7acceb | ||
|
|
95c9daebe1 | ||
|
|
5afaeb40a8 | ||
|
|
1f3a2baa6b | ||
|
|
094d57bce0 | ||
|
|
28b6a457f2 | ||
|
|
a945e2e6b3 | ||
|
|
01ebba4443 | ||
|
|
65fba3e20e | ||
|
|
9529bbf898 | ||
|
|
523d10ef29 | ||
|
|
bae9783123 | ||
|
|
5a8e607a39 | ||
|
|
1f02d9a5a0 | ||
|
|
4e8f49db5b | ||
|
|
c6ecf30d1f | ||
|
|
449407439a | ||
|
|
8856d2b071 | ||
|
|
4bac586253 | ||
|
|
ca93dc02df | ||
|
|
8aff138954 | ||
|
|
81bf0935e1 | ||
|
|
3169cf9225 | ||
|
|
2f506b72bb | ||
|
|
d183d1217c | ||
|
|
1d55c4c2bc | ||
|
|
05f2763311 | ||
|
|
33287b650f | ||
|
|
e6e9fdca31 | ||
|
|
8372fae6f8 | ||
|
|
f976302cf0 | ||
|
|
749c83ac59 | ||
|
|
cf6a2e9e97 | ||
|
|
8240cff0d5 | ||
|
|
7e057792f5 | ||
|
|
5f0c4b1dd3 | ||
|
|
8c21891e6f | ||
|
|
23f836de40 | ||
|
|
f29370a1c8 | ||
|
|
8d6d0cf254 | ||
|
|
e90f8f5b82 | ||
|
|
72feacfdfe | ||
|
|
508c256aa4 | ||
|
|
bc71f586d7 | ||
|
|
29722511b7 | ||
|
|
916eb76553 | ||
|
|
80f910fc67 | ||
|
|
d4699c0e20 | ||
|
|
80c89fe1e5 | ||
|
|
f5294387b0 | ||
|
|
20c69b63af | ||
|
|
0767e62965 | ||
|
|
a6586e07cc | ||
|
|
5d022b6f7c | ||
|
|
ee17707c6c | ||
|
|
c675c36601 | ||
|
|
4005c21810 | ||
|
|
8451f84083 | ||
|
|
adbcf11c15 | ||
|
|
6f99940540 | ||
|
|
02fe8addb7 | ||
|
|
0b20fc2c16 | ||
|
|
3fd5cd03ee | ||
|
|
959a74b139 | ||
|
|
f496d795fb | ||
|
|
d4ab829812 | ||
|
|
3badc26806 | ||
|
|
621ccfed34 | ||
|
|
2810d36e08 | ||
|
|
973279cdb7 | ||
|
|
480f9afa80 | ||
|
|
419a810a1e | ||
|
|
e4c5a3b8ee | ||
|
|
56abad5360 | ||
|
|
bfa092a67c | ||
|
|
e3f21195c8 | ||
|
|
f684b09276 | ||
|
|
8807d6c216 | ||
|
|
b0e8fedf6f | ||
|
|
b35c58ec21 | ||
|
|
b8a38bf975 | ||
|
|
500ab628dd | ||
|
|
1feee7f312 | ||
|
|
7ea9ec5c2f | ||
|
|
e5f1738168 | ||
|
|
557cfe3944 | ||
|
|
a7ded7e982 | ||
|
|
59f52f6e7e | ||
|
|
c6b2cba007 | ||
|
|
dca2661ccb | ||
|
|
a2f2614b10 | ||
|
|
e890d4bae6 | ||
|
|
3a035e234a | ||
|
|
771ed9a8b4 | ||
|
|
d6ff1348eb | ||
|
|
8df15a4e55 | ||
|
|
4a4fd9fb75 | ||
|
|
38017cabe7 | ||
|
|
375292c0b3 | ||
|
|
01f111f78d | ||
|
|
d1b7e88b7e | ||
|
|
c85ca2e2ca | ||
|
|
7828437414 | ||
|
|
0dba450b5a | ||
|
|
d490f4fd60 | ||
|
|
a05c015732 | ||
|
|
9f9518eea0 | ||
|
|
9266a54fce | ||
|
|
270298c265 | ||
|
|
38122d8f17 | ||
|
|
274a41f530 | ||
|
|
8e3d203594 | ||
|
|
4169dceca8 | ||
|
|
567a5461e1 | ||
|
|
70c934fa69 | ||
|
|
ed9521d4a0 | ||
|
|
5d294d6dc3 | ||
|
|
2eb924d433 | ||
|
|
c97dc4181d | ||
|
|
a28d1cd537 | ||
|
|
65a95addb9 | ||
|
|
81b31e49b8 | ||
|
|
353fb80957 | ||
|
|
5298472c90 | ||
|
|
36af6d2478 | ||
|
|
1df2225aa2 | ||
|
|
3ae1b5e987 | ||
|
|
054c023330 | ||
|
|
2910240942 | ||
|
|
3ed0bd6be4 | ||
|
|
35cde870ff | ||
|
|
efcb2d0c14 | ||
|
|
16d7b51497 | ||
|
|
f6c7049cac | ||
|
|
fdd951f1f1 | ||
|
|
7eae59a0b3 | ||
|
|
428c093ae4 | ||
|
|
ded7fd5bdf | ||
|
|
1d1736481c | ||
|
|
c918f2b72f | ||
|
|
7eef87b2e0 | ||
|
|
7258b0995d | ||
|
|
235fb937a2 | ||
|
|
039eb0ee9e | ||
|
|
99f12fe0ed | ||
|
|
2dfd7fd5a4 | ||
|
|
7f1944b61d | ||
|
|
d83e296401 | ||
|
|
59552f42d7 | ||
|
|
005f8c5478 | ||
|
|
919907f46a | ||
|
|
7267b1501b | ||
|
|
f05c4121d2 | ||
|
|
2fc1ba44d8 | ||
|
|
900a534edb | ||
|
|
ce03e6613f | ||
|
|
254e1a1071 | ||
|
|
75f404f387 | ||
|
|
420477149e | ||
|
|
6d6efa3442 | ||
|
|
78eb367b86 | ||
|
|
b0ce6fb170 | ||
|
|
4638f22ade | ||
|
|
6dd5510cd8 | ||
|
|
ed69f843aa | ||
|
|
6b340838ee | ||
|
|
cf78b51052 | ||
|
|
dab255254c | ||
|
|
83617b73b7 | ||
|
|
fba24fd910 | ||
|
|
dd011c94c6 | ||
|
|
c84c428fde | ||
|
|
7ba65499fe | ||
|
|
36d0df1c54 | ||
|
|
41139e93f5 | ||
|
|
382a9a77a7 | ||
|
|
c37a8e10d5 | ||
|
|
795b1ffff5 | ||
|
|
369251fb6b | ||
|
|
3fe0b44ce8 | ||
|
|
c60fbf1761 | ||
|
|
0a26f7122a | ||
|
|
2f650a4789 | ||
|
|
4460d3df67 | ||
|
|
d874b2df39 | ||
|
|
1f26d8e054 | ||
|
|
4025fd94cb | ||
|
|
a159368a3d | ||
|
|
4b80303928 | ||
|
|
23cf9edf9c | ||
|
|
899a0152ba | ||
|
|
f584783490 | ||
|
|
b63311596b | ||
|
|
dce9a3b58d | ||
|
|
ede5b3fd31 | ||
|
|
4a0d6bf2b7 | ||
|
|
402283806d | ||
|
|
fe2b7a8d61 | ||
|
|
15e4dbfd92 | ||
|
|
d1116418be | ||
|
|
9f455f5a0d | ||
|
|
c5ce7bd23b | ||
|
|
74f8c2901d | ||
|
|
ca3509e509 | ||
|
|
a3612b6ae3 | ||
|
|
d023b89189 | ||
|
|
7114ff02e5 | ||
|
|
7615ff472d | ||
|
|
53c5fb7328 | ||
|
|
e4a76e667d | ||
|
|
f943331e53 | ||
|
|
e884b2b7f1 | ||
|
|
25389429ae | ||
|
|
6c5f438099 | ||
|
|
239200a3d2 | ||
|
|
e6289a0548 | ||
|
|
07b838db0f | ||
|
|
4a7b43c560 | ||
|
|
666729cadc | ||
|
|
92c4ddce87 | ||
|
|
2325c4eb6b | ||
|
|
34fe19e35c | ||
|
|
145b2432e0 | ||
|
|
9a3b261f07 | ||
|
|
76536f0a18 | ||
|
|
5984230bf3 | ||
|
|
401e3121e6 | ||
|
|
0897aefbee | ||
|
|
6f79a43e15 | ||
|
|
f82ad99c82 | ||
|
|
4a5bcaa92d | ||
|
|
3a4de97c9b | ||
|
|
69a4ec80cd | ||
|
|
877ef15374 | ||
|
|
8dc955542d | ||
|
|
bffabb4a05 | ||
|
|
3c272a3e31 | ||
|
|
9c342f24cd | ||
|
|
e8021e81e6 | ||
|
|
8fc3643803 | ||
|
|
296d8ee7c1 | ||
|
|
8d7f1cb595 | ||
|
|
280889e11a | ||
|
|
988a8124ca | ||
|
|
9c0dbf84b7 | ||
|
|
42952dc420 | ||
|
|
5bd45ae970 | ||
|
|
254a17f026 | ||
|
|
3fdbdcafd6 | ||
|
|
f8dbace9f0 | ||
|
|
58174d3391 | ||
|
|
7865ad8934 | ||
|
|
d525f754a7 | ||
|
|
fd1b1fe124 | ||
|
|
de71c60d6b | ||
|
|
5609f1cdde | ||
|
|
1bd4454a6b | ||
|
|
8f8dfcf556 | ||
|
|
ce1051c364 | ||
|
|
b9d05d8d67 | ||
|
|
3aa9f385e5 | ||
|
|
ff8c94bf44 | ||
|
|
51e80f40dd | ||
|
|
a7d2c901df | ||
|
|
325cbcad9d | ||
|
|
2644de5ab4 | ||
|
|
3a81d94b32 | ||
|
|
89a990f0cb | ||
|
|
d585b1c2f7 | ||
|
|
1101815f18 | ||
|
|
efea1c5d33 | ||
|
|
3026dc8a28 |
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -2,4 +2,3 @@
|
||||
|
||||
*.png binary
|
||||
*.wav binary
|
||||
p
|
||||
52
.github/workflows/maven.yml
vendored
Normal file
52
.github/workflows/maven.yml
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
# This workflow automatically tests new commits and pull requests as they come in.
|
||||
# Note that this does not upload any artifacts, you will need to compile mcMMO manually
|
||||
# if you wish to create the actual jar.
|
||||
name: Compile and test
|
||||
|
||||
on:
|
||||
# We run our tests whenever the pom or a source file was touched.
|
||||
# There is no need to run Maven when only the changelog was touched.
|
||||
# We may also want to re-run this workflow when the workflow file itself
|
||||
# was updated too.
|
||||
push:
|
||||
paths:
|
||||
- 'src/**'
|
||||
- 'pom.xml'
|
||||
- '.github/workflows/maven.yml'
|
||||
|
||||
# Whenever someone submits a new pull request which modified the pom or a source file,
|
||||
# we want to ensure it compiles successfully and that all tests will pass.
|
||||
pull_request:
|
||||
paths:
|
||||
- 'src/**'
|
||||
- 'pom.xml'
|
||||
|
||||
jobs:
|
||||
compile:
|
||||
name: Maven compiler
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
# 1. Check out the current working tree
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# 2. Setup Java 17 JDK (Adopt)
|
||||
- name: Java 17 setup
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: 'adopt'
|
||||
java-package: jdk
|
||||
java-version: '17'
|
||||
|
||||
# 3. Setup local Maven package cache to speed up building
|
||||
- name: Cache Maven packages
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.m2
|
||||
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
|
||||
restore-keys: ${{ runner.os }}-m2
|
||||
|
||||
# 4. Build via Maven
|
||||
- name: Build via Maven
|
||||
run: mvn verify -B --file pom.xml -DdisableXmlReport=true
|
||||
321
.gitignore
vendored
321
.gitignore
vendored
@@ -1,291 +1,58 @@
|
||||
|
||||
### NetBeans template
|
||||
**/nbproject/private/
|
||||
**/nbproject/Makefile-*.mk
|
||||
**/nbproject/Package-*.bash
|
||||
build/
|
||||
nbbuild/
|
||||
dist/
|
||||
nbdist/
|
||||
.nb-gradle/
|
||||
|
||||
### Bash Scripts
|
||||
# bash stuff
|
||||
*.sh
|
||||
!mcmmo-core/src/main/resources/com/gmail/nossr50/locale/doTranslation.sh
|
||||
|
||||
### JetBrains template
|
||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
|
||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||
# Eclipse stuff
|
||||
/.classpath
|
||||
/.project
|
||||
/.settings
|
||||
/dependency-reduced-pom.xml
|
||||
|
||||
# User-specific stuff
|
||||
.idea/**/workspace.xml
|
||||
.idea/**/tasks.xml
|
||||
.idea/**/usage.statistics.xml
|
||||
.idea/**/dictionaries
|
||||
.idea/**/shelf
|
||||
#vs code
|
||||
/.vscode
|
||||
|
||||
# Generated files
|
||||
.idea/**/contentModel.xml
|
||||
# Maven Depends
|
||||
/lib
|
||||
|
||||
# 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
|
||||
/.gradle
|
||||
/mcMMO-core/.gradle
|
||||
/mcMMO-core/gradle
|
||||
|
||||
# Gradle
|
||||
.idea/**/gradle.xml
|
||||
.idea/**/libraries
|
||||
# netbeans
|
||||
/nbproject
|
||||
|
||||
# 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/modules.xml
|
||||
.idea/*.iml
|
||||
.idea/modules
|
||||
.idea
|
||||
# we use maven!
|
||||
/build.xml
|
||||
|
||||
# maven
|
||||
/target
|
||||
|
||||
# vim
|
||||
.*.sw[a-p]
|
||||
|
||||
# various other potential build files
|
||||
/build
|
||||
/bin
|
||||
/dist
|
||||
/manifest.mf
|
||||
|
||||
/world
|
||||
|
||||
# Mac filesystem dust
|
||||
*.DS_Store
|
||||
|
||||
# intellij
|
||||
*.iml
|
||||
*.ipr
|
||||
|
||||
# CMake
|
||||
cmake-build-*/
|
||||
|
||||
# Mongo Explorer plugin
|
||||
.idea/**/mongoSettings.xml
|
||||
|
||||
# File-based project format
|
||||
*.iws
|
||||
.idea/
|
||||
|
||||
# IntelliJ
|
||||
out/
|
||||
# Project Stuff
|
||||
/src/main/resources/mcMMO
|
||||
|
||||
# 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
|
||||
|
||||
### Maven template
|
||||
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
|
||||
|
||||
### Kotlin template
|
||||
# Compiled class file
|
||||
*.class
|
||||
|
||||
# Log file
|
||||
*.log
|
||||
|
||||
# BlueJ files
|
||||
*.ctxt
|
||||
|
||||
# Mobile Tools for Java (J2ME)
|
||||
.mtj.tmp/
|
||||
|
||||
# Package Files #
|
||||
# Other Libraries
|
||||
*.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*
|
||||
|
||||
### Eclipse template
|
||||
.metadata
|
||||
bin/
|
||||
tmp/
|
||||
*.tmp
|
||||
*.bak
|
||||
*.swp
|
||||
*~.nib
|
||||
local.properties
|
||||
.settings/
|
||||
.loadpath
|
||||
.recommenders
|
||||
|
||||
# External tool builders
|
||||
.externalToolBuilders/
|
||||
|
||||
# Locally stored "Eclipse launch configurations"
|
||||
*.launch
|
||||
|
||||
# PyDev specific (Python IDE for Eclipse)
|
||||
*.pydevproject
|
||||
|
||||
# CDT-specific (C/C++ Development Tooling)
|
||||
.cproject
|
||||
|
||||
# CDT- autotools
|
||||
.autotools
|
||||
|
||||
# Java annotation processor (APT)
|
||||
.factorypath
|
||||
|
||||
# PDT-specific (PHP Development Tools)
|
||||
.buildpath
|
||||
|
||||
# sbteclipse plugin
|
||||
.target
|
||||
|
||||
# Tern plugin
|
||||
.tern-project
|
||||
|
||||
# TeXlipse plugin
|
||||
.texlipse
|
||||
|
||||
# STS (Spring Tool Suite)
|
||||
.springBeans
|
||||
|
||||
# Code Recommenders
|
||||
.recommenders/
|
||||
|
||||
# Annotation Processing
|
||||
.apt_generated/
|
||||
|
||||
# Scala IDE specific (Scala & Java development for Eclipse)
|
||||
.cache-main
|
||||
.scala_dependencies
|
||||
.worksheet
|
||||
|
||||
### Windows template
|
||||
# Windows thumbnail cache files
|
||||
Thumbs.db
|
||||
Thumbs.db:encryptable
|
||||
ehthumbs.db
|
||||
ehthumbs_vista.db
|
||||
|
||||
# Dump file
|
||||
*.stackdump
|
||||
|
||||
# Folder config file
|
||||
[Dd]esktop.ini
|
||||
|
||||
# Recycle Bin used on file shares
|
||||
$RECYCLE.BIN/
|
||||
|
||||
# Windows Installer files
|
||||
*.cab
|
||||
*.msi
|
||||
*.msix
|
||||
*.msm
|
||||
*.msp
|
||||
|
||||
# Windows shortcuts
|
||||
*.lnk
|
||||
|
||||
### macOS template
|
||||
# General
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Icon must end with two \r
|
||||
Icon
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear in the root of a volume
|
||||
.DocumentRevisions-V100
|
||||
.fseventsd
|
||||
.Spotlight-V100
|
||||
.TemporaryItems
|
||||
.Trashes
|
||||
.VolumeIcon.icns
|
||||
.com.apple.timemachine.donotpresent
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
.apdisk
|
||||
|
||||
### Linux template
|
||||
*~
|
||||
|
||||
# temporary files which can be created if a process still has a handle open of a deleted file
|
||||
.fuse_hidden*
|
||||
|
||||
# KDE directory preferences
|
||||
.directory
|
||||
|
||||
# Linux trash folder which might appear on any partition or disk
|
||||
.Trash-*
|
||||
|
||||
# .nfs files are created when an open file is removed but is still being accessed
|
||||
.nfs*
|
||||
|
||||
### Java template
|
||||
# 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*
|
||||
|
||||
### Gradle template
|
||||
.gradle
|
||||
/build/
|
||||
|
||||
# Ignore Gradle GUI config
|
||||
gradle-app.setting
|
||||
|
||||
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
|
||||
!gradle-wrapper.jar
|
||||
|
||||
# Cache of project
|
||||
.gradletasknamecache
|
||||
|
||||
# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
|
||||
# gradle/wrapper/gradle-wrapper.properties
|
||||
|
||||
# Atlassian Stuff
|
||||
/atlassian-ide-plugin.xml
|
||||
/nulllocale_override.properties
|
||||
|
||||
2127
Changelog.txt
2127
Changelog.txt
File diff suppressed because it is too large
Load Diff
74
README.md
74
README.md
@@ -1,40 +1,52 @@
|
||||
# mcMMO
|
||||
## The #1 RPG Mod for Minecraft
|
||||
The #1 RPG Mod for Minecraft
|
||||
|
||||
## Website
|
||||
I'm working on a brand new website for mcMMO
|
||||
|
||||
You can check it out here http://www.mcmmo.org
|
||||
## Useful URLs
|
||||
Website: http://www.mcmmo.org
|
||||
|
||||
Spigot Resource: https://spigot.mcmmo.org
|
||||
|
||||
I plan to post links to our new wiki (its still under development), downloads, and dev blogs there.
|
||||
Polymart Resource: https://polymart.org/product/727/mcmmo
|
||||
|
||||
Wiki: https://wiki.mcmmo.org/
|
||||
|
||||
## API
|
||||
If you are using maven, you can add mcMMO API to your plugin by adding it to pom.xml like so...
|
||||
|
||||
```
|
||||
<repository>
|
||||
<id>neetgames</id>
|
||||
<url>https://nexus.neetgames.com/repository/maven-releases/</url>
|
||||
</repository>
|
||||
```
|
||||
```
|
||||
<dependency>
|
||||
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
||||
<artifactId>mcMMO</artifactId>
|
||||
<version>2.2.004</version>
|
||||
</dependency>
|
||||
```
|
||||
### Builds
|
||||
Currently, you can obtain our builds via the Spigot resource page: http://spigot.mcmmo.org
|
||||
Currently, you can obtain our builds via Spigot or Polymart:
|
||||
|
||||
http://spigot.mcmmo.org
|
||||
|
||||
https://polymart.org/resource/mcmmo.727
|
||||
|
||||
### Brief Description
|
||||
The goal of mcMMO is to take core Minecraft game mechanics and expand them into an extensive and quality RPG experience. Everything in mcMMO has been carefully thought out and is constantly being improved upon. Currently, mcMMO adds fourteen unique skills to train and level in. Each of these skills is highly customizable through our configuration files, allowing server admins to tweak mcMMO to best suit the needs of his or her server. Know that the mcMMO team is dedicated to providing an ever-evolving experience, and that we carefully read all feedback and bug reports in order to evaluate and balance the mechanics of mcMMO in every update.
|
||||
|
||||
## About the Team
|
||||
In December 2018, the original author and creator of mcMMO (nossr50) returned and took over the role of project lead once again, to develop and improve mcMMO.
|
||||
#### Project Lead & Founder
|
||||
|
||||
#### Current mcMMO Devs
|
||||
[](https://github.com/nossr50)
|
||||
|
||||
#### mcMMO Devs
|
||||
[](https://github.com/nossr50)
|
||||
[](https://github.com/kashike)
|
||||
[](https://github.com/electronicboy)
|
||||
|
||||
#### Classic Maintainer
|
||||
[](https://github.com/t00thpick1)
|
||||
|
||||
## Former Team Members
|
||||
|
||||
### Former Lead & Awesome guy
|
||||
[](https://github.com/gmcferrin)
|
||||
|
||||
### Former team members
|
||||
[](https://github.com/gmcferrin)
|
||||
[](https://github.com/kashike)
|
||||
[](https://github.com/electronicboy)
|
||||
[](https://github.com/t00thpick1)
|
||||
[](https://github.com/bm01)
|
||||
[](https://github.com/Glitchfinder)
|
||||
[](https://github.com/NuclearW)
|
||||
@@ -43,20 +55,22 @@ In December 2018, the original author and creator of mcMMO (nossr50) returned an
|
||||
[](https://github.com/riking)
|
||||
[](https://github.com/TheYeti)
|
||||
|
||||
#### Folia Contributors
|
||||
[<img src="https://github.com/HSGamer.png" width=80 alt="HSGamer">](https://github.com/HSGamer)
|
||||
[<img src="https://github.com/TechnicallyCoded.png" width=80 alt="TechnicallyCoded">](https://github.com/TechnicallyCoded)
|
||||
[<img src="https://github.com/Yomamaeatstoes.png" width=80 alt="Yomamaeatstoes">](https://github.com/Yomamaeatstoes)
|
||||
[<img src="https://github.com/Rockyers.png" width=80 alt="Rockyers">](https://github.com/Rockyers)
|
||||
|
||||
## Compiling
|
||||
|
||||
mcMMO uses Maven 3 to manage dependencies, packaging, and shading of necessary classes; Maven 3 is required to compile mcMMO.
|
||||
mcMMO uses Maven to manage dependencies, packaging, and shading of necessary classes; Maven is required to compile mcMMO. It is recommended to always use the latest version of maven.
|
||||
|
||||
The typical command used to build mcMMO is: `mvn clean package install`
|
||||
|
||||
Required Libraries:
|
||||
* Spigot
|
||||
* JUnit
|
||||
* WorldGuard 7
|
||||
* bStats Bukkit
|
||||
The typical command used to build mcMMO is: `mvn clean install`
|
||||
|
||||
https://spigot.mcmmo.org for more up to date information.
|
||||
|
||||
Resource Page
|
||||
## Downloads
|
||||
|
||||
https://www.spigotmc.org/resources/official-mcmmo-original-author-returns.64348/
|
||||
|
||||
https://polymart.org/resource/mcmmo.727
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
subprojects {
|
||||
apply(plugin = "java-library")
|
||||
// Java is not explicitly needed, but keeps IJ happy with the tasks block
|
||||
apply(plugin = "java")
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
maven("https://oss.sonatype.org/content/groups/public/")
|
||||
maven("https://repo.spongepowered.org/maven")
|
||||
maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots")
|
||||
maven("https://repo.codemc.org/repository/maven-public")
|
||||
maven("https://maven.sk89q.com/repo")
|
||||
maven("https://mvnrepository.com/artifact/org.jetbrains/annotations")
|
||||
maven("https://repo.aikar.co/content/groups/aikar/")
|
||||
maven("https://hub.spigotmc.org/nexus/content/groups/public/")
|
||||
}
|
||||
|
||||
tasks {
|
||||
withType(JavaCompile::class.java) {
|
||||
options.encoding = "UTF-8"
|
||||
}
|
||||
}
|
||||
|
||||
configure<JavaPluginConvention> {
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
version=2.2.0-SNAPSHOT
|
||||
group=com.gmail.nossr50.mcMMO
|
||||
artifactId=mcMMO
|
||||
name=mcMMO
|
||||
url=https://github.com/mcMMO-Dev/mcMMO
|
||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
6
gradle/wrapper/gradle-wrapper.properties
vendored
6
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,6 +0,0 @@
|
||||
#Mon Sep 30 20:08:33 BST 2019
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStorePath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
188
gradlew
vendored
188
gradlew
vendored
@@ -1,188 +0,0 @@
|
||||
#!/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=$((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"
|
||||
|
||||
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
|
||||
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
|
||||
cd "$(dirname "$0")"
|
||||
fi
|
||||
|
||||
exec "$JAVACMD" "$@"
|
||||
100
gradlew.bat
vendored
100
gradlew.bat
vendored
@@ -1,100 +0,0 @@
|
||||
@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 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 init
|
||||
|
||||
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 init
|
||||
|
||||
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
|
||||
|
||||
:init
|
||||
@rem Get command-line arguments, handling Windows variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
|
||||
:win9xME_args
|
||||
@rem Slurp the command line arguments.
|
||||
set CMD_LINE_ARGS=
|
||||
set _SKIP=2
|
||||
|
||||
:win9xME_args_slurp
|
||||
if "x%~1" == "x" goto execute
|
||||
|
||||
set CMD_LINE_ARGS=%*
|
||||
|
||||
: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 %CMD_LINE_ARGS%
|
||||
|
||||
: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,9 +0,0 @@
|
||||
plugins {
|
||||
`java-library`
|
||||
}
|
||||
|
||||
|
||||
dependencies {
|
||||
api("org.jetbrains:annotations:17.0.0")
|
||||
api("co.aikar:acf-core:0.5.0-SNAPSHOT") //Don't change without updating the artifacts for its dependencies (see the other comments)
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
package com.gmail.nossr50.mcmmo.api;
|
||||
|
||||
public interface McMMOApi {
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
package com.gmail.nossr50.mcmmo.api.data;
|
||||
|
||||
public interface MMOEntity<N> {
|
||||
|
||||
N getNative();
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package com.gmail.nossr50.mcmmo.api.data;
|
||||
|
||||
public interface MMOPlayer<N> extends MMOEntity<N> {
|
||||
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
package com.gmail.nossr50.mcmmo.api.platform;
|
||||
|
||||
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.PlatformScheduler;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.util.MetadataStore;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.util.MobHealthBarManager;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.UUID;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import co.aikar.commands.CommandIssuer;
|
||||
import co.aikar.commands.CommandManager;
|
||||
import co.aikar.commands.CommandOperationContext;
|
||||
|
||||
public interface PlatformProvider<E> {
|
||||
|
||||
Logger getLogger();
|
||||
|
||||
void tearDown();
|
||||
|
||||
MetadataStore getMetadataStore();
|
||||
|
||||
File getDataFolder();
|
||||
|
||||
String getVersion();
|
||||
|
||||
void earlyInit();
|
||||
|
||||
boolean isSupported(boolean print);
|
||||
|
||||
default boolean isSupported() {
|
||||
return isSupported(false);
|
||||
};
|
||||
|
||||
ServerSoftwareType getServerType();
|
||||
|
||||
void onLoad();
|
||||
|
||||
void printUnsupported();
|
||||
|
||||
PlatformScheduler getScheduler();
|
||||
|
||||
void checkMetrics();
|
||||
|
||||
MobHealthBarManager getHealthBarManager();
|
||||
|
||||
@Deprecated
|
||||
void registerCustomRecipes();
|
||||
|
||||
CommandManager getCommandManager();
|
||||
|
||||
|
||||
|
||||
// EVIL - EVILNESS FROM BEYOND THIS POINT - EVIL
|
||||
// THOU HAST BEEN WARNED
|
||||
@Deprecated
|
||||
MMOEntity<?> getEntity(UUID uniqueId);
|
||||
|
||||
@Deprecated
|
||||
MMOEntity<?> getEntity(E uniqueId);
|
||||
|
||||
@Deprecated
|
||||
Object getChimaeraWing();
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
package com.gmail.nossr50.mcmmo.api.platform;
|
||||
|
||||
public enum ServerSoftwareType {
|
||||
PAPER("Paper"),
|
||||
SPIGOT("Spigot"),
|
||||
CRAFTBUKKIT("CraftBukkit");
|
||||
|
||||
private final String friendlyName;
|
||||
|
||||
ServerSoftwareType(String friendlyName) {
|
||||
|
||||
this.friendlyName = friendlyName;
|
||||
}
|
||||
|
||||
public String getFriendlyName() {
|
||||
return friendlyName;
|
||||
}
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
package com.gmail.nossr50.mcmmo.api.platform.scheduler;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public interface PlatformScheduler {
|
||||
|
||||
TaskBuilder getTaskBuilder();
|
||||
|
||||
Task scheduleTask(TaskBuilder taskBuilder);
|
||||
|
||||
|
||||
abstract class TaskBuilder {
|
||||
Long delay;
|
||||
Long repeatTime;
|
||||
|
||||
public boolean isAsync() {
|
||||
return isAsync;
|
||||
}
|
||||
|
||||
public TaskBuilder setAsync(boolean async) {
|
||||
isAsync = async;
|
||||
return this;
|
||||
}
|
||||
|
||||
boolean isAsync = false;
|
||||
Consumer<Task> task;
|
||||
|
||||
public Long getDelay() {
|
||||
return delay;
|
||||
}
|
||||
|
||||
public TaskBuilder setDelay(Long delay) {
|
||||
this.delay = delay;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Long getRepeatTime() {
|
||||
return repeatTime;
|
||||
}
|
||||
|
||||
public TaskBuilder setRepeatTime(Long repeatTime) {
|
||||
this.repeatTime = repeatTime;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Consumer<Task> getTask() {
|
||||
return task;
|
||||
}
|
||||
|
||||
public TaskBuilder setTask(Consumer<Task> task) {
|
||||
this.task = task;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public TaskBuilder setTask(Runnable runnableTask) {
|
||||
this.setTask(task -> runnableTask.run());
|
||||
return this;
|
||||
}
|
||||
|
||||
public abstract Task schedule();
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.gmail.nossr50.mcmmo.api.platform.scheduler;
|
||||
|
||||
public interface Task {
|
||||
|
||||
void cancel();
|
||||
|
||||
void run();
|
||||
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package com.gmail.nossr50.mcmmo.api.platform.util;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class MetadataKey<V> {
|
||||
|
||||
private final String key;
|
||||
|
||||
public MetadataKey(@NotNull String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getKey() {
|
||||
return key;
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
package com.gmail.nossr50.mcmmo.api.platform.util;
|
||||
|
||||
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
||||
public interface MetadataStore<E extends MMOEntity<?>> {
|
||||
|
||||
/**
|
||||
* @param holder holder of the metadata
|
||||
* @param key key for the metdata
|
||||
* @param <V> value type
|
||||
* @return the metadata value or null
|
||||
*/
|
||||
@Nullable
|
||||
<V> V getMetadata(@NotNull E holder, @NotNull MetadataKey<V> key);
|
||||
|
||||
/**
|
||||
* @param holder holder of the metdata
|
||||
* @param key metadata key
|
||||
* @param value metadata value
|
||||
* @param <V> value type
|
||||
*/
|
||||
<V> void setMetadata(@NotNull E holder, @NotNull MetadataKey<V> key, @NotNull V value);
|
||||
|
||||
/**
|
||||
* @param holder holder of the metadata
|
||||
* @param key metadata key
|
||||
* @param <V> value type
|
||||
* @return the removed metadata key
|
||||
*/
|
||||
@Nullable
|
||||
<V> V removeMetadata(@NotNull E holder, @NotNull MetadataKey<V> key);
|
||||
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
package com.gmail.nossr50.mcmmo.api.platform.util;
|
||||
|
||||
|
||||
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
|
||||
import com.gmail.nossr50.mcmmo.api.data.MMOPlayer;
|
||||
|
||||
@Deprecated // Not really deprecated, just /really/ needs a do-over...
|
||||
public interface MobHealthBarManager<PT, ET> {
|
||||
/**
|
||||
* Fix issues with death messages caused by the mob healthbars.
|
||||
*
|
||||
* @param deathMessage The original death message
|
||||
* @param player The player who died
|
||||
* @return the fixed death message
|
||||
*/
|
||||
public String fixDeathMessage(String deathMessage, MMOPlayer<PT> player);
|
||||
|
||||
/**
|
||||
* Handle the creation of mob healthbars.
|
||||
*
|
||||
* @param target the targetted entity
|
||||
* @param damage damage done by the attack triggering this
|
||||
*/
|
||||
public void handleMobHealthbars(MMOEntity<ET> target, double damage);
|
||||
|
||||
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
import org.apache.tools.ant.filters.ReplaceTokens
|
||||
|
||||
plugins {
|
||||
`java-library`
|
||||
id("com.github.johnrengelman.shadow") version "5.1.0"
|
||||
}
|
||||
|
||||
tasks {
|
||||
|
||||
build {
|
||||
dependsOn(shadowJar)
|
||||
}
|
||||
|
||||
shadowJar {
|
||||
/*
|
||||
dependencies {
|
||||
include(dependency("org.bstats:bstats-bukkit"))
|
||||
include(project(":mcmmo-api"))
|
||||
include(project(":mcmmo-core"))
|
||||
include(project(":mcmmo-bukkit"))
|
||||
}
|
||||
*/
|
||||
relocate("org.apache.commons.logging", "com.gmail.nossr50.commons.logging")
|
||||
relocate("org.apache.juli", "com.gmail.nossr50.database.tomcat.juli")
|
||||
relocate("org.apache.tomcat", "com.gmail.nossr50.database.tomcat")
|
||||
relocate("org.bstats", "com.gmail.nossr50.metrics.bstat")
|
||||
}
|
||||
|
||||
processResources {
|
||||
filter<ReplaceTokens>("tokens" to mapOf("project.version" to project.version))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
dependencies {
|
||||
compile(project(":mcmmo-api"))
|
||||
compile(project(":mcmmo-core"))
|
||||
|
||||
api("org.apache.tomcat:tomcat-jdbc:7.0.52")
|
||||
api("net.kyori:event-api:3.0.0")
|
||||
implementation("org.apache.maven.scm:maven-scm-provider-gitexe:1.8.1")
|
||||
implementation("co.aikar:acf-paper:0.5.0-SNAPSHOT") //Don't change without updating the artifacts for its dependencies (see the other comments)
|
||||
implementation("org.bstats:bstats-bukkit:1.4")
|
||||
compileOnly("org.spigotmc:spigot:1.14.4-R0.1-SNAPSHOT")
|
||||
implementation("com.sk89q.worldguard:worldguard-legacy:7.0.0-SNAPSHOT")
|
||||
testImplementation("junit:junit:4.10")
|
||||
}
|
||||
|
||||
|
||||
@@ -1,251 +0,0 @@
|
||||
package com.gmail.nossr50.mcmmo.bukkit;
|
||||
|
||||
import com.gmail.nossr50.core.MetadataConstants;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.listeners.*;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.PlatformProvider;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.ServerSoftwareType;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.PlatformScheduler;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.util.MetadataStore;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.util.MobHealthBarManager;
|
||||
import com.gmail.nossr50.mcmmo.bukkit.platform.entity.BukkitMMOEntity;
|
||||
import com.gmail.nossr50.mcmmo.bukkit.platform.scheduler.BukkitPlatformScheduler;
|
||||
import com.gmail.nossr50.mcmmo.bukkit.platform.util.BukkitMetadataStore;
|
||||
import com.gmail.nossr50.mcmmo.bukkit.platform.util.BukkitMobHealthBarManager;
|
||||
import org.bstats.bukkit.Metrics;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.Recipe;
|
||||
import org.bukkit.inventory.ShapelessRecipe;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.UUID;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import co.aikar.commands.CommandManager;
|
||||
import co.aikar.commands.PaperCommandManager;
|
||||
|
||||
public class BukkitBootstrap extends JavaPlugin implements PlatformProvider<Entity> {
|
||||
|
||||
private mcMMO core = new mcMMO(this);
|
||||
private final BukkitPlatformScheduler scheduler = new BukkitPlatformScheduler(this);
|
||||
private final MobHealthBarManager healthBarManager = new BukkitMobHealthBarManager(this, core);
|
||||
private final BukkitMetadataStore bukkitMetadataStore = new BukkitMetadataStore(this);
|
||||
|
||||
private PaperCommandManager paperCommandManager;
|
||||
|
||||
|
||||
@Override
|
||||
public @NotNull Logger getLogger() {
|
||||
return super.getLogger();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tearDown() {
|
||||
core.debug("Canceling all tasks...");
|
||||
getServer().getScheduler().cancelTasks(this); // This removes our tasks
|
||||
core.debug("Unregister all events...");
|
||||
HandlerList.unregisterAll(this); // Cancel event registrations
|
||||
}
|
||||
|
||||
@Override
|
||||
public MetadataStore<MMOEntity<Entity>> getMetadataStore() {
|
||||
return bukkitMetadataStore;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getVersion() {
|
||||
return getDescription().getVersion();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void earlyInit() {
|
||||
PluginManager pluginManager = Bukkit.getPluginManager();
|
||||
if (pluginManager.getPlugin("NoCheatPlus") != null && pluginManager.getPlugin("CompatNoCheatPlus") == null) {
|
||||
getLogger().warning("NoCheatPlus plugin found, but CompatNoCheatPlus was not found!");
|
||||
getLogger().warning("mcMMO will not work properly alongside NoCheatPlus without CompatNoCheatPlus");
|
||||
}
|
||||
|
||||
registerEvents();
|
||||
paperCommandManager = new PaperCommandManager(this);
|
||||
paperCommandManager.registerDependency(mcMMO.class, core);
|
||||
MetadataConstants.metadataValue = new FixedMetadataValue(this, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSupported(boolean print) {
|
||||
boolean ret = getServerType() != ServerSoftwareType.CRAFTBUKKIT;
|
||||
if (!ret) {
|
||||
Bukkit
|
||||
.getScheduler()
|
||||
.scheduleSyncRepeatingTask(this,
|
||||
() -> getLogger().severe("You are running an outdated version of " + getServerType() + ", mcMMO will not work unless you update to a newer version!"),
|
||||
20, 20 * 60 * 30);
|
||||
|
||||
if (getServerType() == ServerSoftwareType.CRAFTBUKKIT) {
|
||||
Bukkit.getScheduler()
|
||||
.scheduleSyncRepeatingTask(this,
|
||||
() -> getLogger().severe("We have detected you are using incompatible server software, our best guess is that you are using CraftBukkit. mcMMO requires Spigot or Paper, if you are not using CraftBukkit, you will still need to update your custom server software before mcMMO will work."),
|
||||
20, 20 * 60 * 30);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServerSoftwareType getServerType() {
|
||||
if (Bukkit.getVersion().toLowerCase(Locale.ENGLISH).contains("paper"))
|
||||
return ServerSoftwareType.PAPER;
|
||||
else if (Bukkit.getVersion().toLowerCase(Locale.ENGLISH).contains("spigot"))
|
||||
return ServerSoftwareType.SPIGOT;
|
||||
else
|
||||
return ServerSoftwareType.CRAFTBUKKIT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printUnsupported() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public PlatformScheduler getScheduler() {
|
||||
return scheduler;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkMetrics() {
|
||||
//If anonymous statistics are enabled then use them
|
||||
if (core.getConfigManager().getConfigMetrics().isAllowAnonymousUsageStatistics()) {
|
||||
Metrics metrics;
|
||||
metrics = new Metrics(this);
|
||||
metrics.addCustomChart(new Metrics.SimplePie("version", this::getVersion));
|
||||
|
||||
int levelScaleModifier = core.getConfigManager().getConfigLeveling().getConfigSectionLevelingGeneral().getConfigSectionLevelScaling().getCosmeticLevelScaleModifier();
|
||||
|
||||
if (levelScaleModifier == 10)
|
||||
metrics.addCustomChart(new Metrics.SimplePie("scaling", () -> "Standard"));
|
||||
else if (levelScaleModifier == 1)
|
||||
metrics.addCustomChart(new Metrics.SimplePie("scaling", () -> "Retro"));
|
||||
else
|
||||
metrics.addCustomChart(new Metrics.SimplePie("scaling", () -> "Custom"));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public MobHealthBarManager getHealthBarManager() {
|
||||
return healthBarManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCustomRecipes() {
|
||||
getServer().getScheduler().scheduleSyncDelayedTask(this, () -> {
|
||||
if (core.getConfigManager().getConfigItems().isChimaeraWingEnabled()) {
|
||||
Recipe recipe = getChimaeraWingRecipe();
|
||||
|
||||
if(!core.getSkillTools().hasRecipeBeenRegistered(recipe))
|
||||
getServer().addRecipe(getChimaeraWingRecipe());
|
||||
}
|
||||
}, 40);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommandManager getCommandManager() {
|
||||
return paperCommandManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated // TODO: This needs proper registration...
|
||||
public MMOEntity<?> getEntity(UUID uniqueId) {
|
||||
return getEntity(Bukkit.getEntity(uniqueId));
|
||||
}
|
||||
|
||||
@Override
|
||||
public MMOEntity<?> getEntity(Entity entity) {
|
||||
if (entity instanceof Player) {
|
||||
core.getUserManager().getPlayer((Player) entity);
|
||||
} else if (entity instanceof LivingEntity) {
|
||||
return new BukkitMMOEntity(entity);
|
||||
} else if (entity != null){
|
||||
return new BukkitMMOEntity(entity);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
//TODO: Add this stuff to DSM, this location is temporary
|
||||
//TODO: even more temp here....
|
||||
private ShapelessRecipe getChimaeraWingRecipe() {
|
||||
Material ingredient = Material.matchMaterial(core.getConfigManager().getConfigItems().getChimaeraWingRecipeMats());
|
||||
|
||||
if(ingredient == null)
|
||||
ingredient = Material.FEATHER;
|
||||
|
||||
int amount = core.getConfigManager().getConfigItems().getChimaeraWingUseCost();
|
||||
|
||||
ShapelessRecipe chimaeraWing = new ShapelessRecipe(new NamespacedKey(this, "Chimaera"), getChimaeraWing());
|
||||
chimaeraWing.addIngredient(amount, ingredient);
|
||||
return chimaeraWing;
|
||||
}
|
||||
|
||||
|
||||
//TODO: Add this stuff to DSM, this location is temporary
|
||||
public ItemStack getChimaeraWing() {
|
||||
Material ingredient = Material.matchMaterial(core.getConfigManager().getConfigItems().getChimaeraWingRecipeMats());
|
||||
|
||||
if(ingredient == null)
|
||||
ingredient = Material.FEATHER;
|
||||
|
||||
//TODO: Make it so Chimaera wing amounts made is customizeable
|
||||
ItemStack itemStack = new ItemStack(ingredient, 1);
|
||||
|
||||
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||
itemMeta.setDisplayName(ChatColor.GOLD + core.getLocaleManager().getString("Item.ChimaeraWing.Name"));
|
||||
|
||||
List<String> itemLore = new ArrayList<>();
|
||||
itemLore.add("mcMMO Item");
|
||||
itemLore.add(core.getLocaleManager().getString("Item.ChimaeraWing.Lore"));
|
||||
itemMeta.setLore(itemLore);
|
||||
|
||||
itemStack.setItemMeta(itemMeta);
|
||||
return itemStack;
|
||||
}
|
||||
|
||||
private void registerEvents() {
|
||||
PluginManager pluginManager = getServer().getPluginManager();
|
||||
|
||||
// Register events
|
||||
pluginManager.registerEvents(new PlayerListener(core), this);
|
||||
pluginManager.registerEvents(new BlockListener(core), this);
|
||||
pluginManager.registerEvents(new EntityListener(core), this);
|
||||
pluginManager.registerEvents(new InventoryListener(core), this);
|
||||
pluginManager.registerEvents(new SelfListener(core), this);
|
||||
pluginManager.registerEvents(new WorldListener(core), this);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
core.onLoad();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
core.onEnable();
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
package com.gmail.nossr50.mcmmo.bukkit.platform.entity;
|
||||
|
||||
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
|
||||
|
||||
import org.bukkit.entity.Entity;
|
||||
|
||||
public class BukkitMMOEntity implements MMOEntity<Entity> {
|
||||
|
||||
Entity entity;
|
||||
|
||||
public BukkitMMOEntity(Entity entity) {
|
||||
this.entity = entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Entity getNative() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
package com.gmail.nossr50.mcmmo.bukkit.platform.entity.living;
|
||||
|
||||
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
|
||||
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
|
||||
public class BukkitMMOLivingEntity implements MMOEntity<LivingEntity> {
|
||||
|
||||
LivingEntity entity;
|
||||
|
||||
public BukkitMMOLivingEntity(LivingEntity entity) {
|
||||
this.entity = entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LivingEntity getNative() {
|
||||
return entity;
|
||||
}
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
package com.gmail.nossr50.mcmmo.bukkit.platform.scheduler;
|
||||
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.PlatformScheduler;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
import com.gmail.nossr50.mcmmo.bukkit.BukkitBootstrap;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.scheduler.BukkitScheduler;
|
||||
import org.bukkit.scheduler.BukkitTask;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class BukkitPlatformScheduler implements PlatformScheduler {
|
||||
|
||||
private final BukkitBootstrap bukkitBootstrap;
|
||||
|
||||
public BukkitPlatformScheduler(BukkitBootstrap bukkitBootstrap) {
|
||||
this.bukkitBootstrap = bukkitBootstrap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaskBuilder getTaskBuilder() {
|
||||
return new TaskBuilder() {
|
||||
@Override
|
||||
public Task schedule() {
|
||||
return BukkitPlatformScheduler.this.scheduleTask(this);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public Task scheduleTask(TaskBuilder taskBuilder) {
|
||||
final Long repeatTime = taskBuilder.getRepeatTime();
|
||||
final Long delay = taskBuilder.getDelay();
|
||||
final boolean isAsync = taskBuilder.isAsync();
|
||||
final Consumer<Task> taskConsumer = taskBuilder.getTask();
|
||||
|
||||
final MMOBukkitTask task = new MMOBukkitTask(taskConsumer);
|
||||
final BukkitScheduler bukkitScheduler = Bukkit.getScheduler();
|
||||
|
||||
final BukkitTask bukkitTask;
|
||||
if (!isAsync) {
|
||||
if (delay == null && repeatTime == null) {
|
||||
bukkitTask = bukkitScheduler.runTask(bukkitBootstrap, task);
|
||||
} else if (delay != null && repeatTime == null) {
|
||||
bukkitTask = bukkitScheduler.runTaskLater(bukkitBootstrap, task, delay);
|
||||
} else {
|
||||
bukkitTask = bukkitScheduler.runTaskTimer(bukkitBootstrap, task, delay != null ? delay : 0, repeatTime);
|
||||
}
|
||||
} else {
|
||||
if (delay == null && repeatTime == null) {
|
||||
bukkitTask = bukkitScheduler.runTaskAsynchronously(bukkitBootstrap, task);
|
||||
} else if (delay != null && repeatTime == null) {
|
||||
bukkitTask = bukkitScheduler.runTaskLaterAsynchronously(bukkitBootstrap, task, delay);
|
||||
} else {
|
||||
bukkitTask = bukkitScheduler.runTaskTimerAsynchronously(bukkitBootstrap, task, delay != null ? delay : 0, repeatTime);
|
||||
}
|
||||
}
|
||||
|
||||
task.setBukkitTask(bukkitTask);
|
||||
|
||||
return task;
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
package com.gmail.nossr50.mcmmo.bukkit.platform.scheduler;
|
||||
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
import com.google.common.base.Preconditions;
|
||||
import org.bukkit.scheduler.BukkitTask;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class MMOBukkitTask implements Task, Runnable {
|
||||
Consumer<Task> task;
|
||||
private BukkitTask bukkitTask;
|
||||
|
||||
public MMOBukkitTask(Consumer<Task> task) {
|
||||
this.task = task;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel() {
|
||||
Preconditions.checkState(bukkitTask != null, "Cannot cancel an an unscheduled task!");
|
||||
bukkitTask.cancel();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
task.accept(this);
|
||||
}
|
||||
|
||||
public void setBukkitTask(BukkitTask bukkitTask) {
|
||||
this.bukkitTask = bukkitTask;
|
||||
}
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
package com.gmail.nossr50.mcmmo.bukkit.platform.util;
|
||||
|
||||
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.util.MetadataKey;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.util.MetadataStore;
|
||||
import com.gmail.nossr50.mcmmo.bukkit.BukkitBootstrap;
|
||||
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
import org.bukkit.metadata.MetadataValue;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public class BukkitMetadataStore implements MetadataStore<MMOEntity<Entity>> {
|
||||
private final BukkitBootstrap bukkitBootstrap;
|
||||
|
||||
public BukkitMetadataStore(BukkitBootstrap bukkitBootstrap) {
|
||||
this.bukkitBootstrap = bukkitBootstrap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <V> @Nullable V getMetadata(@NotNull MMOEntity<Entity> holder, @NotNull MetadataKey<V> key) {
|
||||
final List<MetadataValue> metadata = holder.getNative().getMetadata(key.getKey());
|
||||
if (!metadata.isEmpty()) {
|
||||
return (V) metadata.get(0);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <V> void setMetadata(@NotNull MMOEntity<Entity> holder, @NotNull MetadataKey<V> key, @NotNull V value) {
|
||||
holder.getNative().setMetadata(key.getKey(), new FixedMetadataValue(bukkitBootstrap, (V) value));
|
||||
}
|
||||
|
||||
@Override
|
||||
public <V> @Nullable V removeMetadata(@NotNull MMOEntity<Entity> holder, @NotNull MetadataKey<V> key) {
|
||||
final List<MetadataValue> metadata = holder.getNative().getMetadata(key.getKey());
|
||||
if (!metadata.isEmpty()) {
|
||||
holder.getNative().removeMetadata(key.getKey(), bukkitBootstrap);
|
||||
}
|
||||
return (V) metadata.get(0);
|
||||
}
|
||||
}
|
||||
@@ -1,190 +0,0 @@
|
||||
package com.gmail.nossr50.mcmmo.bukkit.platform.util;
|
||||
|
||||
import com.gmail.nossr50.core.MetadataConstants;
|
||||
import com.gmail.nossr50.datatypes.MobHealthbarType;
|
||||
import com.gmail.nossr50.datatypes.meta.OldName;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
|
||||
import com.gmail.nossr50.mcmmo.api.data.MMOPlayer;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.util.MobHealthBarManager;
|
||||
import com.gmail.nossr50.runnables.MobHealthDisplayUpdaterTask;
|
||||
import com.gmail.nossr50.util.StringUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
|
||||
public final class BukkitMobHealthBarManager implements MobHealthBarManager<Player, LivingEntity> {
|
||||
private final Plugin plugin;
|
||||
private final mcMMO pluginRef;
|
||||
private final boolean healthBarPluginEnabled;
|
||||
|
||||
public BukkitMobHealthBarManager(Plugin plugin, mcMMO pluginRef) {
|
||||
this.plugin = plugin;
|
||||
this.pluginRef = pluginRef;
|
||||
PluginManager pluginManager = Bukkit.getServer().getPluginManager();
|
||||
healthBarPluginEnabled = pluginManager.getPlugin("HealthBar") != null;
|
||||
|
||||
if (healthBarPluginEnabled) {
|
||||
pluginRef.getLogger().info("HealthBar plugin found, mcMMO's healthbars are automatically disabled.");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Fix issues with death messages caused by the mob healthbars.
|
||||
*
|
||||
* @param deathMessage The original death message
|
||||
* @param player The player who died
|
||||
* @return the fixed death message
|
||||
*/
|
||||
@Override
|
||||
public String fixDeathMessage(String deathMessage, MMOPlayer<Player> player) {
|
||||
EntityDamageEvent lastDamageCause = player.getNative().getLastDamageCause();
|
||||
String replaceString = lastDamageCause instanceof EntityDamageByEntityEvent ? StringUtils.getPrettyEntityTypeString(((EntityDamageByEntityEvent) lastDamageCause).getDamager().getType()) : "a mob";
|
||||
|
||||
return deathMessage.replaceAll("(?:\u00A7(?:[0-9A-FK-ORa-fk-or]){1}(?:[\u2764\u25A0]{1,10})){1,2}", replaceString);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the creation of mob healthbars.
|
||||
*
|
||||
* @param mmoTarget the targetted entity
|
||||
* @param damage damage done by the attack triggering this
|
||||
*/
|
||||
@Override
|
||||
public void handleMobHealthbars(MMOEntity<LivingEntity> mmoTarget, double damage) {
|
||||
if (healthBarPluginEnabled || !pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().isEnableHealthBars()) {
|
||||
return;
|
||||
}
|
||||
LivingEntity target = mmoTarget.getNative();
|
||||
|
||||
if (isBoss(target)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Don't mangle invalid entities, they're not going to be rendered anyways
|
||||
if (!target.isValid()) {
|
||||
return;
|
||||
}
|
||||
|
||||
String originalName = target.getName();
|
||||
String oldName = target.getCustomName();
|
||||
|
||||
/*
|
||||
* Store the name in metadata
|
||||
*/
|
||||
if (target.getMetadata("mcMMO_oldName").size() <= 0 && originalName != null)
|
||||
target.setMetadata("mcMMO_oldName", new OldName(originalName, pluginRef));
|
||||
|
||||
if (oldName == null) {
|
||||
oldName = "";
|
||||
}
|
||||
|
||||
|
||||
boolean oldNameVisible = target.isCustomNameVisible();
|
||||
String newName = createHealthDisplay(pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().getDisplayBarType(), target, damage);
|
||||
|
||||
target.setCustomName(newName);
|
||||
target.setCustomNameVisible(true);
|
||||
|
||||
int displayTime = Math.max(pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().getDisplayTimeSeconds(), 1);
|
||||
|
||||
if (displayTime != -1) {
|
||||
boolean updateName = !ChatColor.stripColor(oldName).equalsIgnoreCase(ChatColor.stripColor(newName));
|
||||
|
||||
if (updateName) {
|
||||
target.setMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey(), new FixedMetadataValue(plugin, oldName));
|
||||
target.setMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey(), new FixedMetadataValue(plugin, oldNameVisible));
|
||||
} else if (!target.hasMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey())) {
|
||||
target.setMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey(), new FixedMetadataValue(plugin, ""));
|
||||
target.setMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey(), new FixedMetadataValue(plugin, false));
|
||||
}
|
||||
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setDelay(displayTime * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR) // Clear health display after 3 seconds
|
||||
.setTask(new MobHealthDisplayUpdaterTask(pluginRef, target))
|
||||
.schedule();
|
||||
}
|
||||
}
|
||||
|
||||
private String createHealthDisplay(MobHealthbarType mobHealthbarType, LivingEntity entity, double damage) {
|
||||
double maxHealth = entity.getMaxHealth();
|
||||
double currentHealth = Math.max(entity.getHealth() - damage, 0);
|
||||
double healthPercentage = (currentHealth / maxHealth) * 100.0D;
|
||||
|
||||
int fullDisplay;
|
||||
ChatColor color = ChatColor.BLACK;
|
||||
String symbol;
|
||||
|
||||
switch (mobHealthbarType) {
|
||||
case HEARTS:
|
||||
fullDisplay = Math.min((int) (maxHealth / 2), 10);
|
||||
color = ChatColor.DARK_RED;
|
||||
symbol = "❤";
|
||||
break;
|
||||
|
||||
case BAR:
|
||||
fullDisplay = 10;
|
||||
|
||||
if (healthPercentage >= 85) {
|
||||
color = ChatColor.DARK_GREEN;
|
||||
} else if (healthPercentage >= 70) {
|
||||
color = ChatColor.GREEN;
|
||||
} else if (healthPercentage >= 55) {
|
||||
color = ChatColor.GOLD;
|
||||
} else if (healthPercentage >= 40) {
|
||||
color = ChatColor.YELLOW;
|
||||
} else if (healthPercentage >= 25) {
|
||||
color = ChatColor.RED;
|
||||
} else if (healthPercentage >= 0) {
|
||||
color = ChatColor.DARK_RED;
|
||||
}
|
||||
|
||||
symbol = "■";
|
||||
break;
|
||||
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
||||
int coloredDisplay = (int) Math.ceil(fullDisplay * (healthPercentage / 100.0D));
|
||||
int grayDisplay = fullDisplay - coloredDisplay;
|
||||
|
||||
StringBuilder healthbar = new StringBuilder(color + "");
|
||||
|
||||
for (int i = 0; i < coloredDisplay; i++) {
|
||||
healthbar.append(symbol);
|
||||
}
|
||||
|
||||
healthbar.append(ChatColor.GRAY);
|
||||
|
||||
for (int i = 0; i < grayDisplay; i++) {
|
||||
healthbar.append(symbol);
|
||||
}
|
||||
|
||||
return healthbar.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a given LivingEntity is a boss.
|
||||
*
|
||||
* @param livingEntity The {@link LivingEntity} of the livingEntity to check
|
||||
* @return true if the livingEntity is a boss, false otherwise
|
||||
*/
|
||||
private boolean isBoss(LivingEntity livingEntity) {
|
||||
switch (livingEntity.getType()) {
|
||||
case ENDER_DRAGON:
|
||||
case WITHER:
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,79 +0,0 @@
|
||||
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||||
import org.apache.tools.ant.filters.ReplaceTokens
|
||||
|
||||
plugins {
|
||||
`java-library`
|
||||
id("com.github.johnrengelman.shadow") version "5.1.0"
|
||||
}
|
||||
|
||||
tasks {
|
||||
|
||||
shadowJar {
|
||||
/*
|
||||
dependencies {
|
||||
include(dependency("org.spongepowered:configurate-yaml"))
|
||||
include(dependency("org.spongepowered:configurate-hocon"))
|
||||
include(dependency("org.spongepowered:configurate-core"))
|
||||
include(dependency("org.bstats:bstats-bukkit"))
|
||||
include(dependency("org.apache.tomcat:tomcat-jdbc"))
|
||||
include(dependency("org.apache.tomcat:tomcat-juli"))
|
||||
include(dependency("com.typesafe:config"))
|
||||
include(dependency("co.aikar:acf-core"))
|
||||
include(dependency("co.aikar:acf-bukkit"))
|
||||
include(dependency("net.kyori:text-api"))
|
||||
include(dependency("net.kyori:text-adapter-bukkit"))
|
||||
include(dependency("net.kyori:text-serializer-gson"))
|
||||
exclude(dependency("org.spigotmc:spigot"))
|
||||
}
|
||||
*/
|
||||
relocate("org.apache.commons.logging", "com.gmail.nossr50.commons.logging")
|
||||
relocate("org.apache.juli", "com.gmail.nossr50.database.tomcat.juli")
|
||||
relocate("org.apache.tomcat", "com.gmail.nossr50.database.tomcat")
|
||||
relocate("org.bstats", "com.gmail.nossr50.metrics.bstat")
|
||||
relocate("co.aikar.commands", "com.gmail.nossr50.aikar.commands")
|
||||
relocate("co.aikar.locales", "com.gmail.nossr50.aikar.locales")
|
||||
relocate("co.aikar.table", "com.gmail.nossr50.aikar.table")
|
||||
relocate("net.jodah.expiringmap", "com.gmail.nossr50.expiringmap")
|
||||
relocate("net.kyori.text", "com.gmail.nossr50.kyoripowered.text")
|
||||
|
||||
mergeServiceFiles()
|
||||
}
|
||||
|
||||
processResources {
|
||||
filter<ReplaceTokens>("tokens" to mapOf("project.version" to project.version))
|
||||
filesMatching("**/locales/*") {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
build {
|
||||
dependsOn(shadowJar)
|
||||
}
|
||||
}
|
||||
|
||||
tasks.named<ShadowJar>("shadowJar") {
|
||||
dependencies{
|
||||
include { true }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
dependencies {
|
||||
api(project(":mcmmo-api"))
|
||||
compile("org.apache.tomcat:tomcat-jdbc:7.0.52")
|
||||
compile("com.typesafe:config:1.3.2")
|
||||
compile("org.spongepowered:configurate-core:3.7-SNAPSHOT")
|
||||
compile("org.spongepowered:configurate-yaml:3.7-SNAPSHOT")
|
||||
compile("org.spongepowered:configurate-hocon:3.7-SNAPSHOT")
|
||||
compile("net.kyori:text-api:3.0.2")
|
||||
compile("net.kyori:text-serializer-gson:3.0.2")
|
||||
compile("net.kyori:text-adapter-bukkit:3.0.4-SNAPSHOT")
|
||||
compile("org.jetbrains:annotations:17.0.0")
|
||||
compile("org.apache.maven.scm:maven-scm-provider-gitexe:1.8.1")
|
||||
compile("org.bstats:bstats-bukkit:1.4")
|
||||
compileOnly("org.spigotmc:spigot:1.14.4-R0.1-SNAPSHOT")
|
||||
compileOnly("com.sk89q.worldguard:worldguard-legacy:7.0.0-SNAPSHOT")
|
||||
testImplementation("junit:junit:4.10")
|
||||
}
|
||||
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
|
||||
<id>bin</id>
|
||||
<includeBaseDirectory>false</includeBaseDirectory>
|
||||
<formats>
|
||||
<format>zip</format>
|
||||
</formats>
|
||||
<files>
|
||||
<file>
|
||||
<source>${project.build.directory}/${artifactId}.jar</source>
|
||||
<outputDirectory>/</outputDirectory>
|
||||
<destName>mcMMO.jar</destName>
|
||||
</file>
|
||||
</files>
|
||||
</assembly>
|
||||
@@ -1,89 +0,0 @@
|
||||
//package com.gmail.nossr50.api;
|
||||
//
|
||||
//import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
//import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
|
||||
//import com.gmail.nossr50.runnables.skills.BleedTimerTask;
|
||||
//import com.gmail.nossr50.util.player.UserManager;
|
||||
//import org.bukkit.entity.LivingEntity;
|
||||
//import org.bukkit.entity.Player;
|
||||
//
|
||||
//public final class AbilityAPI {
|
||||
// private AbilityAPI() {
|
||||
// }
|
||||
//
|
||||
// public static boolean berserkEnabled(Player player) {
|
||||
// return pluginRef.getUserManager().getPlayer(player).getAbilityMode(SuperAbilityType.BERSERK);
|
||||
// }
|
||||
//
|
||||
// public static boolean gigaDrillBreakerEnabled(Player player) {
|
||||
// return pluginRef.getUserManager().getPlayer(player).getAbilityMode(SuperAbilityType.GIGA_DRILL_BREAKER);
|
||||
// }
|
||||
//
|
||||
// public static boolean greenTerraEnabled(Player player) {
|
||||
// return pluginRef.getUserManager().getPlayer(player).getAbilityMode(SuperAbilityType.GREEN_TERRA);
|
||||
// }
|
||||
//
|
||||
// public static boolean serratedStrikesEnabled(Player player) {
|
||||
// return pluginRef.getUserManager().getPlayer(player).getAbilityMode(SuperAbilityType.SERRATED_STRIKES);
|
||||
// }
|
||||
//
|
||||
// public static boolean skullSplitterEnabled(Player player) {
|
||||
// return pluginRef.getUserManager().getPlayer(player).getAbilityMode(SuperAbilityType.SKULL_SPLITTER);
|
||||
// }
|
||||
//
|
||||
// public static boolean superBreakerEnabled(Player player) {
|
||||
// return pluginRef.getUserManager().getPlayer(player).getAbilityMode(SuperAbilityType.SUPER_BREAKER);
|
||||
// }
|
||||
//
|
||||
// public static boolean treeFellerEnabled(Player player) {
|
||||
// return pluginRef.getUserManager().getPlayer(player).getAbilityMode(SuperAbilityType.TREE_FELLER);
|
||||
// }
|
||||
//
|
||||
// public static boolean isAnyAbilityEnabled(Player player) {
|
||||
// McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
//
|
||||
// for (SuperAbilityType ability : SuperAbilityType.values()) {
|
||||
// if (mcMMOPlayer.getAbilityMode(ability)) {
|
||||
// return true;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// public static void resetCooldowns(Player player) {
|
||||
// pluginRef.getUserManager().getPlayer(player).resetCooldowns();
|
||||
// }
|
||||
//
|
||||
// public static void setBerserkCooldown(Player player, long cooldown) {
|
||||
// pluginRef.getUserManager().getPlayer(player).setAbilityDATS(SuperAbilityType.BERSERK, cooldown);
|
||||
// }
|
||||
//
|
||||
// public static void setGigaDrillBreakerCooldown(Player player, long cooldown) {
|
||||
// pluginRef.getUserManager().getPlayer(player).setAbilityDATS(SuperAbilityType.GIGA_DRILL_BREAKER, cooldown);
|
||||
// }
|
||||
//
|
||||
// public static void setGreenTerraCooldown(Player player, long cooldown) {
|
||||
// pluginRef.getUserManager().getPlayer(player).setAbilityDATS(SuperAbilityType.GREEN_TERRA, cooldown);
|
||||
// }
|
||||
//
|
||||
// public static void setSerratedStrikesCooldown(Player player, long cooldown) {
|
||||
// pluginRef.getUserManager().getPlayer(player).setAbilityDATS(SuperAbilityType.SERRATED_STRIKES, cooldown);
|
||||
// }
|
||||
//
|
||||
// public static void setSkullSplitterCooldown(Player player, long cooldown) {
|
||||
// pluginRef.getUserManager().getPlayer(player).setAbilityDATS(SuperAbilityType.SKULL_SPLITTER, cooldown);
|
||||
// }
|
||||
//
|
||||
// public static void setSuperBreakerCooldown(Player player, long cooldown) {
|
||||
// pluginRef.getUserManager().getPlayer(player).setAbilityDATS(SuperAbilityType.SUPER_BREAKER, cooldown);
|
||||
// }
|
||||
//
|
||||
// public static void setTreeFellerCooldown(Player player, long cooldown) {
|
||||
// pluginRef.getUserManager().getPlayer(player).setAbilityDATS(SuperAbilityType.TREE_FELLER, cooldown);
|
||||
// }
|
||||
//
|
||||
// public static boolean isBleeding(LivingEntity entity) {
|
||||
// return pluginRef.getBleedTimerTask().isBleeding(entity);
|
||||
// }
|
||||
//}
|
||||
@@ -1,154 +0,0 @@
|
||||
//package com.gmail.nossr50.api;
|
||||
//
|
||||
//import com.gmail.nossr50.chat.ChatManager;
|
||||
//import com.gmail.nossr50.chat.ChatManagerFactory;
|
||||
//import com.gmail.nossr50.chat.PartyChatManager;
|
||||
//import com.gmail.nossr50.datatypes.chat.ChatMode;
|
||||
//import com.gmail.nossr50.party.PartyManager;
|
||||
//import com.gmail.nossr50.util.player.UserManager;
|
||||
//import org.bukkit.entity.Player;
|
||||
//import org.bukkit.plugin.Plugin;
|
||||
//
|
||||
//public final class ChatAPI {
|
||||
// private ChatAPI() {
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Send a message to all members of a party
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param plugin The plugin sending the message
|
||||
// * @param sender The name of the sender
|
||||
// * @param displayName The display name of the sender
|
||||
// * @param party The name of the party to send to
|
||||
// * @param message The message to send
|
||||
// */
|
||||
// public static void sendPartyChat(Plugin plugin, String sender, String displayName, String party, String message) {
|
||||
// getPartyChatManager(plugin, party).handleChat(sender, displayName, message);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Send a message to all members of a party
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param plugin The plugin sending the message
|
||||
// * @param sender The name of the sender to display in the chat
|
||||
// * @param party The name of the party to send to
|
||||
// * @param message The message to send
|
||||
// */
|
||||
// public static void sendPartyChat(Plugin plugin, String sender, String party, String message) {
|
||||
// getPartyChatManager(plugin, party).handleChat(sender, message);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Send a message to administrators
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param plugin The plugin sending the message
|
||||
// * @param sender The name of the sender
|
||||
// * @param displayName The display name of the sender
|
||||
// * @param message The message to send
|
||||
// */
|
||||
// public static void sendAdminChat(Plugin plugin, String sender, String displayName, String message) {
|
||||
// ChatManagerFactory.getChatManager(plugin, ChatMode.ADMIN).handleChat(sender, displayName, message);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Send a message to administrators
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param plugin The plugin sending the message
|
||||
// * @param sender The name of the sender to display in the chat
|
||||
// * @param message The message to send
|
||||
// */
|
||||
// public static void sendAdminChat(Plugin plugin, String sender, String message) {
|
||||
// ChatManagerFactory.getChatManager(plugin, ChatMode.ADMIN).handleChat(sender, message);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Check if a player is currently talking in party chat.
|
||||
// *
|
||||
// * @param player The player to check
|
||||
// * @return true if the player is using party chat, false otherwise
|
||||
// */
|
||||
// public static boolean isUsingPartyChat(Player player) {
|
||||
// return pluginRef.getUserManager().getPlayer(player).isChatEnabled(ChatMode.PARTY);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Check if a player is currently talking in party chat.
|
||||
// *
|
||||
// * @param playerName The name of the player to check
|
||||
// * @return true if the player is using party chat, false otherwise
|
||||
// */
|
||||
// public static boolean isUsingPartyChat(String playerName) {
|
||||
// return pluginRef.getUserManager().getPlayer(playerName).isChatEnabled(ChatMode.PARTY);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Check if a player is currently talking in admin chat.
|
||||
// *
|
||||
// * @param player The player to check
|
||||
// * @return true if the player is using admin chat, false otherwise
|
||||
// */
|
||||
// public static boolean isUsingAdminChat(Player player) {
|
||||
// return pluginRef.getUserManager().getPlayer(player).isChatEnabled(ChatMode.ADMIN);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Check if a player is currently talking in admin chat.
|
||||
// *
|
||||
// * @param playerName The name of the player to check
|
||||
// * @return true if the player is using admin chat, false otherwise
|
||||
// */
|
||||
// public static boolean isUsingAdminChat(String playerName) {
|
||||
// return pluginRef.getUserManager().getPlayer(playerName).isChatEnabled(ChatMode.ADMIN);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Toggle the party chat mode of a player.
|
||||
// *
|
||||
// * @param player The player to toggle party chat on.
|
||||
// */
|
||||
// public static void togglePartyChat(Player player) {
|
||||
// pluginRef.getUserManager().getPlayer(player).toggleChat(ChatMode.PARTY);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Toggle the party chat mode of a player.
|
||||
// *
|
||||
// * @param playerName The name of the player to toggle party chat on.
|
||||
// */
|
||||
// public static void togglePartyChat(String playerName) {
|
||||
// pluginRef.getUserManager().getPlayer(playerName).toggleChat(ChatMode.PARTY);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Toggle the admin chat mode of a player.
|
||||
// *
|
||||
// * @param player The player to toggle admin chat on.
|
||||
// */
|
||||
// public static void toggleAdminChat(Player player) {
|
||||
// pluginRef.getUserManager().getPlayer(player).toggleChat(ChatMode.ADMIN);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Toggle the admin chat mode of a player.
|
||||
// *
|
||||
// * @param playerName The name of the player to toggle party chat on.
|
||||
// */
|
||||
// public static void toggleAdminChat(String playerName) {
|
||||
// pluginRef.getUserManager().getPlayer(playerName).toggleChat(ChatMode.ADMIN);
|
||||
// }
|
||||
//
|
||||
// private static ChatManager getPartyChatManager(Plugin plugin, String party) {
|
||||
// ChatManager chatManager = ChatManagerFactory.getChatManager(plugin, ChatMode.PARTY);
|
||||
// ((PartyChatManager) chatManager).setParty(pluginRef.getPartyManager().getParty(party));
|
||||
//
|
||||
// return chatManager;
|
||||
// }
|
||||
//}
|
||||
@@ -1,30 +0,0 @@
|
||||
//package com.gmail.nossr50.api;
|
||||
//
|
||||
//import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||
//import com.gmail.nossr50.mcMMO;
|
||||
//
|
||||
//import java.util.UUID;
|
||||
//
|
||||
//public class DatabaseAPI {
|
||||
//
|
||||
// /**
|
||||
// * Checks if a player exists in the mcMMO Database
|
||||
// * @param uuid player UUID
|
||||
// * @return true if the player exists in the DB, false if they do not
|
||||
// */
|
||||
// public boolean doesPlayerExistInDB(String uuid) {
|
||||
// return doesPlayerExistInDB(UUID.fromString(uuid));
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Checks if a player exists in the mcMMO Database
|
||||
// * @param uuid player UUID
|
||||
// * @return true if the player exists in the DB, false if they do not
|
||||
// */
|
||||
// public boolean doesPlayerExistInDB(UUID uuid) {
|
||||
// PlayerProfile playerProfile = mcMMO.getDatabaseManager().loadPlayerProfile(uuid);
|
||||
//
|
||||
// return playerProfile.isLoaded();
|
||||
// }
|
||||
//
|
||||
//}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,265 +0,0 @@
|
||||
//package com.gmail.nossr50.api;
|
||||
//
|
||||
//import com.gmail.nossr50.datatypes.interactions.NotificationType;
|
||||
//import com.gmail.nossr50.datatypes.party.Party;
|
||||
//import com.gmail.nossr50.datatypes.party.PartyLeader;
|
||||
//import com.gmail.nossr50.mcMMO;
|
||||
//import com.gmail.nossr50.party.PartyManager;
|
||||
//import com.gmail.nossr50.util.player.UserManager;
|
||||
//import org.bukkit.OfflinePlayer;
|
||||
//import org.bukkit.entity.Player;
|
||||
//
|
||||
//import java.util.*;
|
||||
//
|
||||
//public final class PartyAPI {
|
||||
// private PartyAPI() {
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Get the name of the party a player is in.
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param player The player to check the party name of
|
||||
// * @return the name of the player's party, or null if not in a party
|
||||
// */
|
||||
// public static String getPartyName(Player player) {
|
||||
// if (!inParty(player)) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// return pluginRef.getUserManager().getPlayer(player).getParty().getName();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Checks if a player is in a party.
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param player The player to check
|
||||
// * @return true if the player is in a party, false otherwise
|
||||
// */
|
||||
// public static boolean inParty(Player player) {
|
||||
// if (pluginRef.getUserManager().getPlayer(player) == null)
|
||||
// return false;
|
||||
//
|
||||
// return pluginRef.getUserManager().getPlayer(player).inParty();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Check if two players are in the same party.
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param playera The first player to check
|
||||
// * @param playerb The second player to check
|
||||
// * @return true if the two players are in the same party, false otherwise
|
||||
// */
|
||||
// public static boolean inSameParty(Player playera, Player playerb) {
|
||||
// return pluginRef.getPartyManager().inSameParty(playera, playerb);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Get a list of all current parties.
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @return the list of parties.
|
||||
// */
|
||||
// public static List<Party> getParties() {
|
||||
// return pluginRef.getPartyManager().getParties();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Add a player to a party.
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param player The player to add to the party
|
||||
// * @param partyName The party to add the player to
|
||||
// * @deprecated parties can have limits, use the other method
|
||||
// */
|
||||
// @Deprecated
|
||||
// public static void addToParty(Player player, String partyName) {
|
||||
// //Check if player profile is loaded
|
||||
// if (pluginRef.getUserManager().getPlayer(player) == null)
|
||||
// return;
|
||||
//
|
||||
// Party party = pluginRef.getPartyManager().getParty(partyName);
|
||||
//
|
||||
// if (party == null) {
|
||||
// party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName);
|
||||
// } else if (mcMMO.getConfigManager().getConfigParty().getPartyGeneral().isPartySizeCapped()) {
|
||||
// if (pluginRef.getPartyManager().isPartyFull(player, party)) {
|
||||
// mcMMO.getNotificationManager().sendPlayerInformation(player, NotificationType.PARTY_MESSAGE, "Commands.Party.PartyFull", party.toString());
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// pluginRef.getPartyManager().addToParty(pluginRef.getUserManager().getPlayer(player), party);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * The max party size of the server
|
||||
// * Limits are only enforced if the enforcement setting is on
|
||||
// *
|
||||
// * @return the max party size on this server
|
||||
// */
|
||||
// public static int getMaxPartySize() {
|
||||
// return mcMMO.getConfigManager().getConfigParty().getPartySizeLimit();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Checks if parties are currently size capped which is determined by the user config
|
||||
// *
|
||||
// * @return true if parties are size capped
|
||||
// */
|
||||
// public static boolean isPartySizeCapped() {
|
||||
// return mcMMO.getConfigManager().getConfigParty().isPartySizeCapped();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Add a player to a party.
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param player The player to add to the party
|
||||
// * @param partyName The party to add the player to
|
||||
// * @param bypassLimit if true bypasses party size limits
|
||||
// */
|
||||
// //TODO: bypasslimit not used?
|
||||
// public static void addToParty(Player player, String partyName, boolean bypassLimit) {
|
||||
// //Check if player profile is loaded
|
||||
// if (pluginRef.getUserManager().getPlayer(player) == null)
|
||||
// return;
|
||||
//
|
||||
// Party party = pluginRef.getPartyManager().getParty(partyName);
|
||||
//
|
||||
// if (party == null) {
|
||||
// party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName);
|
||||
// }
|
||||
//
|
||||
// pluginRef.getPartyManager().addToParty(pluginRef.getUserManager().getPlayer(player), party);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Remove a player from a party.
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param player The player to remove
|
||||
// */
|
||||
// public static void removeFromParty(Player player) {
|
||||
// //Check if player profile is loaded
|
||||
// if (pluginRef.getUserManager().getPlayer(player) == null)
|
||||
// return;
|
||||
//
|
||||
// pluginRef.getPartyManager().removeFromParty(pluginRef.getUserManager().getPlayer(player));
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Get the leader of a party.
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param partyName The party name
|
||||
// * @return the leader of the party
|
||||
// */
|
||||
// public static String getPartyLeader(String partyName) {
|
||||
// return pluginRef.getPartyManager().getPartyLeaderName(partyName);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Set the leader of a party.
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param partyName The name of the party to set the leader of
|
||||
// * @param playerName The playerName to set as leader
|
||||
// */
|
||||
// @Deprecated
|
||||
// public static void setPartyLeader(String partyName, String playerName) {
|
||||
// pluginRef.getPartyManager().setPartyLeader(mcMMO.p.getServer().getOfflinePlayer(playerName).getUniqueId(), pluginRef.getPartyManager().getParty(partyName));
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Get a list of all players in this player's party.
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param player The player to check
|
||||
// * @return all the players in the player's party
|
||||
// */
|
||||
// @Deprecated
|
||||
// public static List<OfflinePlayer> getOnlineAndOfflineMembers(Player player) {
|
||||
// List<OfflinePlayer> members = new ArrayList<>();
|
||||
//
|
||||
// for (UUID memberUniqueId : pluginRef.getPartyManager().getAllMembers(player).keySet()) {
|
||||
// OfflinePlayer member = mcMMO.p.getServer().getOfflinePlayer(memberUniqueId);
|
||||
// members.add(member);
|
||||
// }
|
||||
// return members;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Get a list of all player names in this player's party.
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param player The player to check
|
||||
// * @return all the player names in the player's party
|
||||
// */
|
||||
// @Deprecated
|
||||
// public static LinkedHashSet<String> getMembers(Player player) {
|
||||
// return (LinkedHashSet<String>) pluginRef.getPartyManager().getAllMembers(player).values();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Get a list of all player names and uuids in this player's party.
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param player The player to check
|
||||
// * @return all the player names and uuids in the player's party
|
||||
// */
|
||||
// public static LinkedHashMap<UUID, String> getMembersMap(Player player) {
|
||||
// return pluginRef.getPartyManager().getAllMembers(player);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Get a list of all online players in this party.
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param partyName The party to check
|
||||
// * @return all online players in this party
|
||||
// */
|
||||
// public static List<Player> getOnlineMembers(String partyName) {
|
||||
// return pluginRef.getPartyManager().getOnlineMembers(partyName);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Get a list of all online players in this player's party.
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param player The player to check
|
||||
// * @return all online players in the player's party
|
||||
// */
|
||||
// public static List<Player> getOnlineMembers(Player player) {
|
||||
// return pluginRef.getPartyManager().getOnlineMembers(player);
|
||||
// }
|
||||
//
|
||||
// public static boolean hasAlly(String partyName) {
|
||||
// return getAllyName(partyName) != null;
|
||||
// }
|
||||
//
|
||||
// public static String getAllyName(String partyName) {
|
||||
// Party ally = pluginRef.getPartyManager().getParty(partyName).getAlly();
|
||||
// if (ally != null) {
|
||||
// return ally.getName();
|
||||
// }
|
||||
//
|
||||
// return null;
|
||||
// }
|
||||
//}
|
||||
@@ -1,94 +0,0 @@
|
||||
//package com.gmail.nossr50.api;
|
||||
//
|
||||
//import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
//
|
||||
//import java.util.ArrayList;
|
||||
//import java.util.Arrays;
|
||||
//import java.util.List;
|
||||
//
|
||||
//public final class SkillAPI {
|
||||
// private SkillAPI() {
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Returns a list of strings with mcMMO's skills
|
||||
// * This includes parent and child skills
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @return a list of strings with valid skill names
|
||||
// */
|
||||
// public static List<String> getSkills() {
|
||||
// return getListFromEnum(Arrays.asList(PrimarySkillType.values()));
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Returns a list of strings with mcMMO's skills
|
||||
// * This only includes parent skills
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @return a list of strings with valid skill names
|
||||
// */
|
||||
// public static List<String> getNonChildSkills() {
|
||||
// return getListFromEnum(pluginRef.getSkillTools().NON_CHILD_SKILLS);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Returns a list of strings with mcMMO's skills
|
||||
// * This only includes child skills
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @return a list of strings with valid skill names
|
||||
// */
|
||||
// public static List<String> getChildSkills() {
|
||||
// return getListFromEnum(PrimarySkillType.CHILD_SKILLS);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Returns a list of strings with mcMMO's skills
|
||||
// * This only includes combat skills
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @return a list of strings with valid skill names
|
||||
// */
|
||||
// public static List<String> getCombatSkills() {
|
||||
// return getListFromEnum(PrimarySkillType.COMBAT_SKILLS);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Returns a list of strings with mcMMO's skills
|
||||
// * This only includes gathering skills
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @return a list of strings with valid skill names
|
||||
// */
|
||||
// public static List<String> getGatheringSkills() {
|
||||
// return getListFromEnum(PrimarySkillType.GATHERING_SKILLS);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Returns a list of strings with mcMMO's skills
|
||||
// * This only includes misc skills
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @return a list of strings with valid skill names
|
||||
// */
|
||||
// public static List<String> getMiscSkills() {
|
||||
// return getListFromEnum(PrimarySkillType.MISC_SKILLS);
|
||||
// }
|
||||
//
|
||||
// private static List<String> getListFromEnum(List<PrimarySkillType> skillsTypes) {
|
||||
// List<String> skills = new ArrayList<>();
|
||||
//
|
||||
// for (PrimarySkillType primarySkillType : skillsTypes) {
|
||||
// skills.add(primarySkillType.name());
|
||||
// }
|
||||
//
|
||||
// return skills;
|
||||
// }
|
||||
//}
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.gmail.nossr50.api.exceptions;
|
||||
|
||||
public class InvalidSkillException extends RuntimeException {
|
||||
private static final long serialVersionUID = 942705284195791157L;
|
||||
|
||||
public InvalidSkillException(String s) {
|
||||
super(s + " does not match a valid skill.");
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package com.gmail.nossr50.api.exceptions;
|
||||
|
||||
public class MissingSkillPropertyDefinition extends RuntimeException {
|
||||
public MissingSkillPropertyDefinition(String details) {
|
||||
super("A skill property is undefined! Details: " + details);
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.gmail.nossr50.api.exceptions;
|
||||
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
|
||||
public class UndefinedSkillBehaviour extends RuntimeException {
|
||||
public UndefinedSkillBehaviour(PrimarySkillType primarySkillType) {
|
||||
super("Undefined behaviour for skill! - " + primarySkillType.toString());
|
||||
}
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
//package com.gmail.nossr50.bukkit;
|
||||
//
|
||||
//import com.gmail.nossr50.datatypes.items.BukkitMMOItem;
|
||||
//import com.gmail.nossr50.datatypes.items.MMOItem;
|
||||
//import com.gmail.nossr50.util.nbt.NBTManager;
|
||||
//import com.gmail.nossr50.util.nbt.RawNBT;
|
||||
//import org.bukkit.inventory.ItemStack;
|
||||
//
|
||||
///**
|
||||
// * Used to convert or construct platform independent types into Bukkit types
|
||||
// */
|
||||
//public class BukkitFactory {
|
||||
//
|
||||
// /**
|
||||
// * Creates a BukkitMMOItem which contains Bukkit implementations for the type MMOItem
|
||||
// * @return a new BukkitMMOItem
|
||||
// */
|
||||
// public static MMOItem<?> createItem(String namespaceKey, int amount, RawNBT rawNBT) {
|
||||
// return new BukkitMMOItem(namespaceKey, amount, rawNBT);
|
||||
// }
|
||||
//
|
||||
// public static MMOItem<?> createItem(ItemStack itemStack) {
|
||||
// return createItem(itemStack.getType().getKey().toString(), itemStack.getAmount(), new RawNBT(NBTManager.getNBT(itemStack).toString()));
|
||||
// }
|
||||
//
|
||||
//}
|
||||
@@ -1,111 +0,0 @@
|
||||
package com.gmail.nossr50.chat;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.events.chat.McMMOAdminChatEvent;
|
||||
import com.gmail.nossr50.events.chat.McMMOPartyChatEvent;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class ChatManager {
|
||||
private final String ADMIN_CHAT_PERMISSION = "mcmmo.chat.adminchat";
|
||||
private final mcMMO pluginRef;
|
||||
@Deprecated
|
||||
private final Plugin legacyPlugin;
|
||||
|
||||
public ChatManager(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
this.legacyPlugin = (Plugin) pluginRef.getPlatformProvider();
|
||||
}
|
||||
|
||||
public void processAdminChat(Player player, String message) {
|
||||
sendAdminChatMessage(new McMMOAdminChatEvent(legacyPlugin, player.getName(), player.getDisplayName(), message));
|
||||
}
|
||||
|
||||
public void processAdminChat(String senderName, String displayName, String message) {
|
||||
sendAdminChatMessage(new McMMOAdminChatEvent(legacyPlugin, senderName, displayName, message));
|
||||
}
|
||||
|
||||
public void processPartyChat(Party party, Player sender, String message) {
|
||||
sendPartyChatMessage(new McMMOPartyChatEvent(legacyPlugin, sender.getName(), sender.getDisplayName(), party, message));
|
||||
}
|
||||
|
||||
public void processPartyChat(Party party, String senderName, String message) {
|
||||
sendPartyChatMessage(new McMMOPartyChatEvent(legacyPlugin, senderName, senderName, party, message));
|
||||
}
|
||||
|
||||
private void sendAdminChatMessage(McMMOAdminChatEvent event) {
|
||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
String chatPrefix = pluginRef.getConfigManager().getConfigCommands().getAdminChatPrefix();
|
||||
String senderName = event.getSender();
|
||||
String displayName = pluginRef.getConfigManager().getConfigCommands().isUseDisplayNames() ? event.getDisplayName() : senderName;
|
||||
String message = pluginRef.getLocaleManager().formatString(chatPrefix, displayName) + " " + event.getMessage();
|
||||
|
||||
Bukkit.getServer().broadcast(message, ADMIN_CHAT_PERMISSION);
|
||||
}
|
||||
|
||||
private void sendPartyChatMessage(McMMOPartyChatEvent event) {
|
||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
Party party = event.getParty();
|
||||
String chatPrefix = pluginRef.getConfigManager().getConfigParty().getPartyChatPrefixFormat();
|
||||
String senderName = event.getSender();
|
||||
String displayName = pluginRef.getConfigManager().getConfigCommands().isUseDisplayNames() ? event.getDisplayName() : senderName;
|
||||
String message = pluginRef.getLocaleManager().formatString(chatPrefix, displayName) + " " + event.getMessage();
|
||||
|
||||
if (pluginRef.getConfigManager().getConfigParty().isPartyLeaderColoredGold()
|
||||
&& senderName.equalsIgnoreCase(party.getLeader().getPlayerName())) {
|
||||
message = message.replaceFirst(Pattern.quote(displayName), ChatColor.GOLD + Matcher.quoteReplacement(displayName) + ChatColor.RESET);
|
||||
}
|
||||
|
||||
for (Player member : party.getOnlineMembers()) {
|
||||
member.sendMessage(message);
|
||||
}
|
||||
|
||||
if (party.getAlly() != null) {
|
||||
for (Player member : party.getAlly().getOnlineMembers()) {
|
||||
String allyPrefix = pluginRef.getLocaleManager().formatString(pluginRef.getConfigManager().getConfigParty().getPartyChatPrefixAlly());
|
||||
member.sendMessage(allyPrefix + message);
|
||||
}
|
||||
}
|
||||
|
||||
Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.stripColor("[mcMMO] [P]<" + party.getName() + ">" + message));
|
||||
|
||||
/*
|
||||
* Party Chat Spying
|
||||
*/
|
||||
for (BukkitMMOPlayer mcMMOPlayer : pluginRef.getUserManager().getPlayers()) {
|
||||
Player player = mcMMOPlayer.getNative();
|
||||
|
||||
//Check for toggled players
|
||||
if (mcMMOPlayer.isPartyChatSpying()) {
|
||||
Party adminParty = mcMMOPlayer.getParty();
|
||||
|
||||
//Only message admins not part of this party
|
||||
if (adminParty != null) {
|
||||
//TODO: Incorporate JSON
|
||||
if (adminParty != event.getParty())
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.AdminChatSpy.Chat", event.getParty(), message));
|
||||
} else {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.AdminChatSpy.Chat", event.getParty(), message));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
package com.gmail.nossr50.commands;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class AbilityToggleCommand extends ToggleCommand {
|
||||
|
||||
public AbilityToggleCommand(mcMMO pluginRef) {
|
||||
super(pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean hasOtherPermission(CommandSender sender) {
|
||||
return pluginRef.getPermissionTools().mcabilityOthers(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean hasSelfPermission(CommandSender sender) {
|
||||
return pluginRef.getPermissionTools().mcability(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyCommandAction(BukkitMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.getNative().sendMessage(pluginRef.getLocaleManager().getString("Commands.Ability." + (mcMMOPlayer.getAllowAbilityUse() ? "Off" : "On")));
|
||||
mcMMOPlayer.toggleAbilityUse();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void sendSuccessMessage(CommandSender sender, String playerName) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Ability.Toggle", playerName));
|
||||
}
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
package com.gmail.nossr50.commands;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ChatNotificationToggleCommand implements TabExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public ChatNotificationToggleCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (pluginRef.getCommandTools().noConsoleUsage(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer((Player) sender);
|
||||
|
||||
//Not Loaded yet
|
||||
if (mcMMOPlayer == null)
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Notifications." + (mcMMOPlayer.useChatNotifications() ? "Off" : "On")));
|
||||
mcMMOPlayer.toggleChatNotifications();
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
package com.gmail.nossr50.commands;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class CommandConstants {
|
||||
public static final List<String> TELEPORT_SUBCOMMANDS = ImmutableList.of("toggle", "accept", "acceptany", "acceptall");
|
||||
public static final List<String> ALLIANCE_SUBCOMMANDS = ImmutableList.of("invite", "accept", "disband");
|
||||
public static final List<String> TRUE_FALSE_OPTIONS = ImmutableList.of("on", "off", "true", "false", "enabled", "disabled");
|
||||
public static final List<String> RESET_OPTIONS = ImmutableList.of("clear", "reset");
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
package com.gmail.nossr50.commands;
|
||||
|
||||
import com.gmail.nossr50.commands.database.ConvertDatabaseCommand;
|
||||
import com.gmail.nossr50.commands.experience.ConvertExperienceCommand;
|
||||
import com.gmail.nossr50.datatypes.database.DatabaseType;
|
||||
import com.gmail.nossr50.datatypes.experience.FormulaType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class ConvertCommand implements TabExecutor {
|
||||
private List<String> FORMULA_TYPES;
|
||||
private List<String> DATABASE_TYPES;
|
||||
private final List<String> CONVERSION_SUBCOMMANDS = ImmutableList.of("database", "experience");
|
||||
private CommandExecutor databaseConvertCommand;
|
||||
private CommandExecutor experienceConvertCommand;
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public ConvertCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
databaseConvertCommand = new ConvertDatabaseCommand(pluginRef);
|
||||
experienceConvertCommand = new ConvertExperienceCommand(pluginRef);
|
||||
initTypes();
|
||||
}
|
||||
|
||||
private void initTypes() {
|
||||
ArrayList<String> formulaTypes = new ArrayList<>();
|
||||
ArrayList<String> databaseTypes = new ArrayList<>();
|
||||
|
||||
for (FormulaType type : FormulaType.values()) {
|
||||
formulaTypes.add(type.toString());
|
||||
}
|
||||
|
||||
for (DatabaseType type : DatabaseType.values()) {
|
||||
databaseTypes.add(type.toString());
|
||||
}
|
||||
|
||||
// Custom stuff
|
||||
databaseTypes.remove(DatabaseType.CUSTOM.toString());
|
||||
|
||||
if (pluginRef.getDatabaseManager().getDatabaseType() == DatabaseType.CUSTOM) {
|
||||
databaseTypes.add(pluginRef.getDatabaseManagerFactory().getCustomDatabaseManagerClass().getName());
|
||||
}
|
||||
|
||||
Collections.sort(formulaTypes);
|
||||
Collections.sort(databaseTypes);
|
||||
|
||||
FORMULA_TYPES = ImmutableList.copyOf(formulaTypes);
|
||||
DATABASE_TYPES = ImmutableList.copyOf(databaseTypes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 2:
|
||||
if (args[0].equalsIgnoreCase("database") || args[0].equalsIgnoreCase("db")) {
|
||||
return databaseConvertCommand.onCommand(sender, command, label, args);
|
||||
} else if (args[0].equalsIgnoreCase("experience") || args[0].equalsIgnoreCase("xp") || args[1].equalsIgnoreCase("exp")) {
|
||||
return experienceConvertCommand.onCommand(sender, command, label, args);
|
||||
}
|
||||
|
||||
return false;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
return StringUtil.copyPartialMatches(args[0], CONVERSION_SUBCOMMANDS, new ArrayList<>(CONVERSION_SUBCOMMANDS.size()));
|
||||
case 2:
|
||||
if (args[1].equalsIgnoreCase("database") || args[1].equalsIgnoreCase("db")) {
|
||||
return StringUtil.copyPartialMatches(args[0], DATABASE_TYPES, new ArrayList<>(DATABASE_TYPES.size()));
|
||||
}
|
||||
|
||||
if (args[1].equalsIgnoreCase("experience") || args[1].equalsIgnoreCase("xp") || args[1].equalsIgnoreCase("exp")) {
|
||||
return StringUtil.copyPartialMatches(args[0], FORMULA_TYPES, new ArrayList<>(FORMULA_TYPES.size()));
|
||||
}
|
||||
|
||||
return ImmutableList.of();
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,126 +0,0 @@
|
||||
package com.gmail.nossr50.commands;
|
||||
|
||||
import com.gmail.nossr50.datatypes.notifications.SensitiveCommandType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.StringUtils;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ExperienceRateCommand implements TabExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public ExperienceRateCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
if (!args[0].equalsIgnoreCase("reset") && !args[0].equalsIgnoreCase("clear")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!pluginRef.getPermissionTools().xprateReset(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
if (pluginRef.isXPEventEnabled()) {
|
||||
|
||||
if (pluginRef.getConfigManager().getConfigEvent().isSendTitleMessages()) {
|
||||
pluginRef.getNotificationManager().broadcastTitle(Bukkit.getServer(),
|
||||
pluginRef.getLocaleManager().getString("Commands.Event.Stop"),
|
||||
pluginRef.getLocaleManager().getString("Commands.Event.Stop.Subtitle"),
|
||||
10, 10 * 20, 20);
|
||||
}
|
||||
|
||||
if (pluginRef.getConfigManager().getConfigEvent().isBroadcastXPRateEventMessages()) {
|
||||
Bukkit.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.Stop"));
|
||||
Bukkit.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.Stop.Subtitle"));
|
||||
}
|
||||
|
||||
//Admin notification
|
||||
pluginRef.getNotificationManager().processSensitiveCommandNotification(sender, SensitiveCommandType.XPRATE_END);
|
||||
|
||||
pluginRef.toggleXpEventEnabled();
|
||||
}
|
||||
|
||||
pluginRef.getDynamicSettingsManager().getExperienceManager().resetGlobalXpMult();
|
||||
return true;
|
||||
|
||||
case 2:
|
||||
if (pluginRef.getCommandTools().isInvalidInteger(sender, args[0])) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!pluginRef.getPermissionTools().xprateSet(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
if (pluginRef.getCommandTools().shouldDisableToggle(args[1])) {
|
||||
pluginRef.setXPEventEnabled(false);
|
||||
} else if (pluginRef.getCommandTools().shouldEnableToggle(args[1])) {
|
||||
pluginRef.setXPEventEnabled(true);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
int newXpRate = Integer.parseInt(args[0]);
|
||||
|
||||
if (newXpRate < 0) {
|
||||
sender.sendMessage(ChatColor.RED + pluginRef.getLocaleManager().getString("Commands.NegativeNumberWarn"));
|
||||
return true;
|
||||
}
|
||||
|
||||
pluginRef.getDynamicSettingsManager().getExperienceManager().setGlobalXpMult(newXpRate);
|
||||
|
||||
if (pluginRef.getConfigManager().getConfigEvent().isSendTitleMessages()) {
|
||||
pluginRef.getNotificationManager().broadcastTitle(Bukkit.getServer(),
|
||||
pluginRef.getLocaleManager().getString("Commands.Event.Start"),
|
||||
pluginRef.getLocaleManager().getString("Commands.Event.XP", newXpRate),
|
||||
10, 10 * 20, 20);
|
||||
}
|
||||
|
||||
if (pluginRef.getConfigManager().getConfigEvent().isBroadcastXPRateEventMessages()) {
|
||||
Bukkit.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.Start"));
|
||||
Bukkit.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.XP", newXpRate));
|
||||
}
|
||||
|
||||
//Admin notification
|
||||
pluginRef.getNotificationManager().processSensitiveCommandNotification(sender, SensitiveCommandType.XPRATE_MODIFY, String.valueOf(newXpRate));
|
||||
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
if (StringUtils.isInt(args[0])) {
|
||||
return ImmutableList.of();
|
||||
}
|
||||
|
||||
return StringUtil.copyPartialMatches(args[0], CommandConstants.RESET_OPTIONS, new ArrayList<>(CommandConstants.RESET_OPTIONS.size()));
|
||||
case 2:
|
||||
return StringUtil.copyPartialMatches(args[1], CommandConstants.TRUE_FALSE_OPTIONS, new ArrayList<>(CommandConstants.TRUE_FALSE_OPTIONS.size()));
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
package com.gmail.nossr50.commands;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class GodModeCommand extends ToggleCommand {
|
||||
|
||||
public GodModeCommand(mcMMO pluginRef) {
|
||||
super(pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean hasOtherPermission(CommandSender sender) {
|
||||
return pluginRef.getPermissionTools().mcgodOthers(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean hasSelfPermission(CommandSender sender) {
|
||||
return pluginRef.getPermissionTools().mcgod(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyCommandAction(BukkitMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.getNative().sendMessage(pluginRef.getLocaleManager().getString("Commands.GodMode." + (mcMMOPlayer.getGodMode() ? "Disabled" : "Enabled")));
|
||||
mcMMOPlayer.toggleGodMode();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void sendSuccessMessage(CommandSender sender, String playerName) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.GodMode.Toggle", playerName));
|
||||
}
|
||||
}
|
||||
@@ -1,119 +0,0 @@
|
||||
package com.gmail.nossr50.commands;
|
||||
|
||||
import com.gmail.nossr50.commands.party.PartySubcommandType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
public class McMMOCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public McMMOCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
if (!pluginRef.getPermissionTools().mcmmoDescription(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
String description = pluginRef.getLocaleManager().getString("mcMMO.Description");
|
||||
String[] mcSplit = description.split(",");
|
||||
sender.sendMessage(mcSplit);
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("mcMMO.Description.FormerDevs"));
|
||||
|
||||
if (pluginRef.getConfigManager().getConfigAds().isShowDonationInfo()) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("MOTD.Donate"));
|
||||
sender.sendMessage(ChatColor.GOLD + " - " + ChatColor.GREEN + "nossr50@gmail.com" + ChatColor.GOLD + " Paypal");
|
||||
}
|
||||
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("MOTD.Version", ((Plugin) pluginRef.getPlatformProvider()).getDescription().getVersion()));
|
||||
|
||||
// mcMMO.getHolidayManager().anniversaryCheck(sender);
|
||||
return true;
|
||||
|
||||
case 1:
|
||||
if (args[0].equalsIgnoreCase("?") || args[0].equalsIgnoreCase("help") || args[0].equalsIgnoreCase("commands")) {
|
||||
if (!pluginRef.getPermissionTools().mcmmoHelp(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mcc.Header"));
|
||||
displayGeneralCommands(sender);
|
||||
displayOtherCommands(sender);
|
||||
displayPartyCommands(sender);
|
||||
}
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private void displayGeneralCommands(CommandSender sender) {
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /mcstats " + pluginRef.getLocaleManager().getString("Commands.Stats"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /<skill>" + pluginRef.getLocaleManager().getString("Commands.SkillInfo"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /mctop " + pluginRef.getLocaleManager().getString("Commands.Leaderboards"));
|
||||
|
||||
if (pluginRef.getPermissionTools().inspect(sender)) {
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /inspect " + pluginRef.getLocaleManager().getString("Commands.Inspect"));
|
||||
}
|
||||
|
||||
if (pluginRef.getPermissionTools().mcability(sender)) {
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /mcability " + pluginRef.getLocaleManager().getString("Commands.ToggleAbility"));
|
||||
}
|
||||
}
|
||||
|
||||
private void displayOtherCommands(CommandSender sender) {
|
||||
//Don't show them this category if they have none of the permissions
|
||||
if (!pluginRef.getPermissionTools().skillreset(sender) && !pluginRef.getPermissionTools().mmoedit(sender) && !pluginRef.getPermissionTools().adminChat(sender) && !pluginRef.getPermissionTools().mcgod(sender))
|
||||
return;
|
||||
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Other"));
|
||||
|
||||
if (pluginRef.getPermissionTools().skillreset(sender)) {
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /skillreset <skill|all> " + pluginRef.getLocaleManager().getString("Commands.Reset"));
|
||||
}
|
||||
|
||||
if (pluginRef.getPermissionTools().mmoedit(sender)) {
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /mmoedit " + pluginRef.getLocaleManager().getString("Commands.mmoedit"));
|
||||
}
|
||||
|
||||
if (pluginRef.getPermissionTools().adminChat(sender)) {
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /adminchat " + pluginRef.getLocaleManager().getString("Commands.AdminToggle"));
|
||||
}
|
||||
|
||||
if (pluginRef.getPermissionTools().mcgod(sender)) {
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /mcgod " + pluginRef.getLocaleManager().getString("Commands.mcgod"));
|
||||
}
|
||||
}
|
||||
|
||||
private void displayPartyCommands(CommandSender sender) {
|
||||
if (pluginRef.getPermissionTools().party(sender)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Commands"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /party create <" + pluginRef.getLocaleManager().getString("Commands.Usage.PartyName") + "> " + pluginRef.getLocaleManager().getString("Commands.Party1"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /party join <" + pluginRef.getLocaleManager().getString("Commands.Usage.Player") + "> " + pluginRef.getLocaleManager().getString("Commands.Party2"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /party quit " + pluginRef.getLocaleManager().getString("Commands.Party.Quit"));
|
||||
|
||||
if (pluginRef.getPermissionTools().partyChat(sender)) {
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /party chat " + pluginRef.getLocaleManager().getString("Commands.Party.Toggle"));
|
||||
}
|
||||
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /party invite <" + pluginRef.getLocaleManager().getString("Commands.Usage.Player") + "> " + pluginRef.getLocaleManager().getString("Commands.Party.Invite"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /party accept " + pluginRef.getLocaleManager().getString("Commands.Party.Accept"));
|
||||
|
||||
if (pluginRef.getPermissionTools().partySubcommand(sender, PartySubcommandType.TELEPORT)) {
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /party teleport <" + pluginRef.getLocaleManager().getString("Commands.Usage.Player") + "> " + pluginRef.getLocaleManager().getString("Commands.Party.Teleport"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
package com.gmail.nossr50.commands;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class RefreshCooldownsCommand extends ToggleCommand {
|
||||
|
||||
public RefreshCooldownsCommand(mcMMO pluginRef) {
|
||||
super(pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean hasOtherPermission(CommandSender sender) {
|
||||
return pluginRef.getPermissionTools().mcrefreshOthers(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean hasSelfPermission(CommandSender sender) {
|
||||
return pluginRef.getPermissionTools().mcrefresh(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyCommandAction(BukkitMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.setRecentlyHurt(0);
|
||||
mcMMOPlayer.resetCooldowns();
|
||||
mcMMOPlayer.resetToolPrepMode();
|
||||
mcMMOPlayer.resetSuperAbilityMode();
|
||||
|
||||
mcMMOPlayer.getNative().sendMessage(pluginRef.getLocaleManager().getString("Ability.Generic.Refresh"));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void sendSuccessMessage(CommandSender sender, String playerName) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mcrefresh.Success", playerName));
|
||||
}
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
package com.gmail.nossr50.commands;
|
||||
|
||||
import com.gmail.nossr50.database.FlatFileDatabaseManager;
|
||||
import com.gmail.nossr50.database.SQLDatabaseManager;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ResetUserHealthBarSettingsCommand implements TabExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public ResetUserHealthBarSettingsCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (pluginRef.getDatabaseManager() instanceof SQLDatabaseManager) {
|
||||
SQLDatabaseManager sqlDatabaseManager = (SQLDatabaseManager) pluginRef.getDatabaseManager();
|
||||
sqlDatabaseManager.resetMobHealthSettings();
|
||||
for (BukkitMMOPlayer player : pluginRef.getUserManager().getPlayers()) {
|
||||
player.getProfile().setMobHealthbarType(pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().getDisplayBarType());
|
||||
}
|
||||
sender.sendMessage("Mob health reset");
|
||||
return true;
|
||||
}
|
||||
if (pluginRef.getDatabaseManager() instanceof FlatFileDatabaseManager) {
|
||||
FlatFileDatabaseManager flatFileDatabaseManager = (FlatFileDatabaseManager) pluginRef.getDatabaseManager();
|
||||
flatFileDatabaseManager.resetMobHealthSettings();
|
||||
for (BukkitMMOPlayer player : pluginRef.getUserManager().getPlayers()) {
|
||||
player.getProfile().setMobHealthbarType(pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().getDisplayBarType());
|
||||
}
|
||||
sender.sendMessage("Mob health reset");
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
@@ -1,92 +0,0 @@
|
||||
package com.gmail.nossr50.commands;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ScoreboardCommand implements TabExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public ScoreboardCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
private static final List<String> FIRST_ARGS = ImmutableList.of("keep", "time", "clear");
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (pluginRef.getCommandTools().noConsoleUsage(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
if (args[0].equalsIgnoreCase("clear") || args[0].equalsIgnoreCase("reset")) {
|
||||
pluginRef.getScoreboardManager().clearBoard(sender.getName());
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Scoreboard.Clear"));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("keep")) {
|
||||
if (!pluginRef.getScoreboardSettings().getScoreboardsEnabled()) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Disabled"));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!pluginRef.getScoreboardManager().isBoardShown(sender.getName())) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Scoreboard.NoBoard"));
|
||||
return true;
|
||||
}
|
||||
|
||||
pluginRef.getScoreboardManager().keepBoard(sender.getName());
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Scoreboard.Keep"));
|
||||
return true;
|
||||
}
|
||||
|
||||
return help(sender);
|
||||
|
||||
case 2:
|
||||
if (args[0].equalsIgnoreCase("time") || args[0].equalsIgnoreCase("timer")) {
|
||||
if (pluginRef.getCommandTools().isInvalidInteger(sender, args[1])) {
|
||||
return true;
|
||||
}
|
||||
|
||||
int time = Math.abs(Integer.parseInt(args[1]));
|
||||
|
||||
pluginRef.getScoreboardManager().setRevertTimer(sender.getName(), time);
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Scoreboard.Timer", time));
|
||||
return true;
|
||||
}
|
||||
|
||||
return help(sender);
|
||||
|
||||
default:
|
||||
return help(sender);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
return StringUtil.copyPartialMatches(args[0], FIRST_ARGS, new ArrayList<>(FIRST_ARGS.size()));
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean help(CommandSender sender) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Scoreboard.Help.0"));
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Scoreboard.Help.1"));
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Scoreboard.Help.2"));
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Scoreboard.Help.3"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,87 +0,0 @@
|
||||
package com.gmail.nossr50.commands;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class ToggleCommand implements TabExecutor {
|
||||
|
||||
protected mcMMO pluginRef;
|
||||
|
||||
public ToggleCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
if (pluginRef.getCommandTools().noConsoleUsage(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!hasSelfPermission(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!pluginRef.getCommandTools().hasPlayerDataKey(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
applyCommandAction(pluginRef.getUserManager().getPlayer(sender.getName()));
|
||||
return true;
|
||||
|
||||
case 1:
|
||||
if (!hasOtherPermission(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(playerName);
|
||||
|
||||
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, playerName, mcMMOPlayer)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
//TODO: Does it matter if they are offline?
|
||||
/*if (pluginRef.getCommandTools().isOffline(sender, mcMMOPlayer.getPlayer())) {
|
||||
return true;
|
||||
}*/
|
||||
|
||||
applyCommandAction(mcMMOPlayer);
|
||||
sendSuccessMessage(sender, playerName);
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
List<String> playerNames = pluginRef.getCommandTools().getOnlinePlayerNames(sender);
|
||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<>(playerNames.size()));
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract boolean hasOtherPermission(CommandSender sender);
|
||||
|
||||
protected abstract boolean hasSelfPermission(CommandSender sender);
|
||||
|
||||
protected abstract void applyCommandAction(BukkitMMOPlayer mcMMOPlayer);
|
||||
|
||||
protected abstract void sendSuccessMessage(CommandSender sender, String playerName);
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
package com.gmail.nossr50.commands.admin;
|
||||
|
||||
import co.aikar.commands.BaseCommand;
|
||||
import co.aikar.commands.annotation.*;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import net.kyori.text.TextComponent;
|
||||
import net.kyori.text.adapter.bukkit.TextAdapter;
|
||||
import net.kyori.text.format.TextColor;
|
||||
import net.kyori.text.serializer.gson.GsonComponentSerializer;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandAlias("nbttools")
|
||||
@Description("Read or Modify values of NBT on an item in-hand")
|
||||
public class NBTToolsCommand extends BaseCommand {
|
||||
|
||||
public static final String STYLE_TEXT_1 = "//////////";
|
||||
@Dependency
|
||||
private mcMMO plugin;
|
||||
|
||||
@Default
|
||||
@CommandPermission("mcmmo.commands.nbttools")
|
||||
public void onCommand(Player player) {
|
||||
//TODO: Add some help messages
|
||||
player.sendMessage("hi");
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the NBT tags of an item in hand
|
||||
*/
|
||||
@Subcommand("tags show")
|
||||
public void onShowTags(Player player) {
|
||||
final TextComponent textComponent = TextComponent.builder()
|
||||
.content(plugin.getLocaleManager().getString("mcMMO.Template.Prefix"))
|
||||
.append("NBT Tools")
|
||||
.color(TextColor.GOLD)
|
||||
.append(" - ")
|
||||
.append("Showing NBT Tags (")
|
||||
.append(player.getInventory().getItemInMainHand().getType().getKey().toString())
|
||||
.color(TextColor.GREEN)
|
||||
.append(")")
|
||||
.color(TextColor.GOLD)
|
||||
.append(TextComponent.newline())
|
||||
.build();
|
||||
|
||||
String json = GsonComponentSerializer.INSTANCE.serialize(textComponent);
|
||||
TextAdapter.sendMessage(player, textComponent);
|
||||
|
||||
//Show NBT tags to player
|
||||
player.sendMessage(STYLE_TEXT_1 + " NBT TOOLS " + STYLE_TEXT_1);
|
||||
player.sendMessage("NBT Analysis: " + player.getInventory().getItemInMainHand().getType().getKey().toString());
|
||||
player.sendMessage(STYLE_TEXT_1 + STYLE_TEXT_1);
|
||||
plugin.getNbtManager().printNBT(player.getInventory().getItemInMainHand(), player);
|
||||
player.sendMessage(ChatColor.GRAY + "NBT Analysis completed!");
|
||||
}
|
||||
|
||||
@Subcommand("tags add")
|
||||
public void onAddTags(Player player) {
|
||||
|
||||
}
|
||||
|
||||
@Subcommand("tags remove")
|
||||
public void onRemoveTags(Player player) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
package com.gmail.nossr50.commands.admin;
|
||||
|
||||
import co.aikar.commands.BaseCommand;
|
||||
import co.aikar.commands.annotation.CommandAlias;
|
||||
import co.aikar.commands.annotation.Default;
|
||||
import co.aikar.commands.annotation.Dependency;
|
||||
import co.aikar.commands.annotation.Description;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
@CommandAlias("mmodebug")
|
||||
@Description("Puts the player into debug mode, which helps problem solve bugs in mcMMO.")
|
||||
public class PlayerDebugCommand extends BaseCommand {
|
||||
|
||||
@Dependency
|
||||
private mcMMO plugin;
|
||||
|
||||
@Default
|
||||
public void onCommand(CommandSender sender) {
|
||||
if(sender instanceof Player) {
|
||||
BukkitMMOPlayer mcMMOPlayer = plugin.getUserManager().getPlayer((Player) sender);
|
||||
|
||||
if(mcMMOPlayer == null)
|
||||
return;
|
||||
mcMMOPlayer.toggleDebugMode(); //Toggle debug mode
|
||||
plugin.getNotificationManager().sendPlayerInformationChatOnlyPrefixed(mcMMOPlayer.getNative(), "Commands.Mmodebug.Toggle", String.valueOf(mcMMOPlayer.isDebugMode()));
|
||||
} else {
|
||||
//TODO: Localize
|
||||
sender.sendMessage("Players only");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
package com.gmail.nossr50.commands.admin;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
/**
|
||||
* @author Mark Vainomaa
|
||||
*/
|
||||
public final class ReloadLocaleCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public ReloadLocaleCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (args.length == 0) {
|
||||
if (!pluginRef.getPermissionTools().reloadlocale(sender)) {
|
||||
if(command.getPermissionMessage() != null)
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
pluginRef.getLocaleManager().reloadLocale();
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Locale.Reloaded"));
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
package com.gmail.nossr50.commands.chat;
|
||||
|
||||
import com.gmail.nossr50.datatypes.chat.ChatMode;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class AdminChatCommand extends ChatCommand {
|
||||
public AdminChatCommand(mcMMO pluginRef) {
|
||||
super(ChatMode.ADMIN, pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handleChatSending(CommandSender sender, String[] args) {
|
||||
pluginRef.getChatManager().processAdminChat(sender.getName(), getDisplayName(sender), buildChatMessage(args, 0));
|
||||
}
|
||||
}
|
||||
@@ -1,159 +0,0 @@
|
||||
package com.gmail.nossr50.commands.chat;
|
||||
|
||||
import com.gmail.nossr50.commands.CommandConstants;
|
||||
import com.gmail.nossr50.datatypes.chat.ChatMode;
|
||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class ChatCommand implements TabExecutor {
|
||||
private ChatMode chatMode;
|
||||
protected mcMMO pluginRef;
|
||||
|
||||
ChatCommand(ChatMode chatMode, mcMMO pluginRef) {
|
||||
this.chatMode = chatMode;
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
BukkitMMOPlayer mcMMOPlayer;
|
||||
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
if (pluginRef.getCommandTools().noConsoleUsage(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!pluginRef.getCommandTools().hasPlayerDataKey(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
mcMMOPlayer = pluginRef.getUserManager().getPlayer(sender.getName());
|
||||
|
||||
if (mcMMOPlayer.isChatEnabled(chatMode)) {
|
||||
disableChatMode(mcMMOPlayer, sender);
|
||||
} else {
|
||||
enableChatMode(mcMMOPlayer, sender);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
case 1:
|
||||
if (pluginRef.getCommandTools().shouldEnableToggle(args[0])) {
|
||||
if (pluginRef.getCommandTools().noConsoleUsage(sender)) {
|
||||
return true;
|
||||
}
|
||||
if (!pluginRef.getCommandTools().hasPlayerDataKey(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
enableChatMode(pluginRef.getUserManager().getPlayer(sender.getName()), sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (pluginRef.getCommandTools().shouldDisableToggle(args[0])) {
|
||||
if (pluginRef.getCommandTools().noConsoleUsage(sender)) {
|
||||
return true;
|
||||
}
|
||||
if (!pluginRef.getCommandTools().hasPlayerDataKey(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
disableChatMode(pluginRef.getUserManager().getPlayer(sender.getName()), sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
// Fallthrough
|
||||
|
||||
default:
|
||||
handleChatSending(sender, args);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
return StringUtil.copyPartialMatches(args[0], CommandConstants.TRUE_FALSE_OPTIONS, new ArrayList<>(CommandConstants.TRUE_FALSE_OPTIONS.size()));
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
|
||||
protected String buildChatMessage(String[] args, int index) {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append(args[index]);
|
||||
|
||||
for (int i = index + 1; i < args.length; i++) {
|
||||
builder.append(" ");
|
||||
builder.append(args[i]);
|
||||
}
|
||||
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
protected String getDisplayName(CommandSender sender) {
|
||||
return (sender instanceof Player) ? ((Player) sender).getDisplayName() : pluginRef.getLocaleManager().getString("Commands.Chat.Console");
|
||||
}
|
||||
|
||||
protected abstract void handleChatSending(CommandSender sender, String[] args);
|
||||
|
||||
private void enableChatMode(BukkitMMOPlayer mcMMOPlayer, CommandSender sender) {
|
||||
if (chatMode == ChatMode.PARTY && mcMMOPlayer.getParty() == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (chatMode == ChatMode.PARTY && (mcMMOPlayer.getParty().getLevel() < pluginRef.getPartyManager().getPartyFeatureUnlockLevel(PartyFeature.CHAT))) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Feature.Disabled.1"));
|
||||
return;
|
||||
}
|
||||
|
||||
mcMMOPlayer.enableChat(chatMode);
|
||||
sender.sendMessage(getChatModeEnabledMessage(chatMode, true));
|
||||
}
|
||||
|
||||
private void disableChatMode(BukkitMMOPlayer mcMMOPlayer, CommandSender sender) {
|
||||
if (chatMode == ChatMode.PARTY && mcMMOPlayer.getParty() == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None"));
|
||||
return;
|
||||
}
|
||||
|
||||
mcMMOPlayer.disableChat(chatMode);
|
||||
sender.sendMessage(getChatModeEnabledMessage(chatMode, false));
|
||||
}
|
||||
|
||||
private String getChatModeEnabledMessage(ChatMode chatMode, boolean enabled) {
|
||||
switch(chatMode) {
|
||||
case ADMIN:
|
||||
return getAdminMessage(enabled);
|
||||
default:
|
||||
return getPartyMessage(enabled);
|
||||
}
|
||||
}
|
||||
|
||||
private String getAdminMessage(boolean enabled) {
|
||||
if(enabled)
|
||||
return pluginRef.getLocaleManager().getString("Commands.AdminChat.On");
|
||||
else
|
||||
return pluginRef.getLocaleManager().getString("Commands.AdminChat.Off");
|
||||
}
|
||||
|
||||
private String getPartyMessage(boolean enabled) {
|
||||
if(enabled)
|
||||
return pluginRef.getLocaleManager().getString("Commands.Party.Chat.On");
|
||||
else
|
||||
return pluginRef.getLocaleManager().getString("Commands.Party.Chat.Off");
|
||||
}
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
package com.gmail.nossr50.commands.chat;
|
||||
|
||||
import com.gmail.nossr50.commands.ToggleCommand;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class ChatSpyCommand extends ToggleCommand {
|
||||
|
||||
public ChatSpyCommand(mcMMO pluginRef) {
|
||||
super(pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean hasOtherPermission(CommandSender sender) {
|
||||
return pluginRef.getPermissionTools().adminChatSpyOthers(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean hasSelfPermission(CommandSender sender) {
|
||||
return pluginRef.getPermissionTools().adminChatSpy(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyCommandAction(BukkitMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.getNative().sendMessage(pluginRef.getLocaleManager().getString("Commands.AdminChatSpy." + (mcMMOPlayer.isPartyChatSpying() ? "Disabled" : "Enabled")));
|
||||
mcMMOPlayer.togglePartyChatSpying();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void sendSuccessMessage(CommandSender sender, String playerName) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.AdminChatSpy.Toggle", playerName));
|
||||
}
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
package com.gmail.nossr50.commands.chat;
|
||||
|
||||
import com.gmail.nossr50.datatypes.chat.ChatMode;
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PartyChatCommand extends ChatCommand {
|
||||
public PartyChatCommand(mcMMO pluginRef) {
|
||||
super(ChatMode.PARTY, pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handleChatSending(CommandSender sender, String[] args) {
|
||||
Party party;
|
||||
String message;
|
||||
|
||||
if (sender instanceof Player) {
|
||||
//Check if player profile is loaded
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null)
|
||||
return;
|
||||
|
||||
party = pluginRef.getUserManager().getPlayer((Player) sender).getParty();
|
||||
|
||||
if (party == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (party.getLevel() < pluginRef.getPartyManager().getPartyFeatureUnlockLevel(PartyFeature.CHAT)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Feature.Disabled.1"));
|
||||
return;
|
||||
}
|
||||
|
||||
message = buildChatMessage(args, 0);
|
||||
} else {
|
||||
if (args.length < 2) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Specify"));
|
||||
return;
|
||||
}
|
||||
|
||||
party = pluginRef.getPartyManager().getParty(args[0]);
|
||||
|
||||
if (party == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.InvalidName"));
|
||||
return;
|
||||
}
|
||||
|
||||
message = buildChatMessage(args, 1);
|
||||
}
|
||||
|
||||
pluginRef.getChatManager().processPartyChat(party, getDisplayName(sender), message);
|
||||
}
|
||||
}
|
||||
@@ -1,102 +0,0 @@
|
||||
package com.gmail.nossr50.commands.database;
|
||||
|
||||
import com.gmail.nossr50.database.DatabaseManager;
|
||||
import com.gmail.nossr50.datatypes.database.DatabaseType;
|
||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.runnables.database.DatabaseConversionTask;
|
||||
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class ConvertDatabaseCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public ConvertDatabaseCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 2:
|
||||
DatabaseType previousType = getDatabaseType(args[1]);
|
||||
DatabaseType newType = pluginRef.getDatabaseManager().getDatabaseType();
|
||||
|
||||
if (previousType == newType || (newType == DatabaseType.CUSTOM && pluginRef.getDatabaseManagerFactory().getCustomDatabaseManagerClass().getSimpleName().equalsIgnoreCase(args[1]))) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mcconvert.Database.Same", newType.toString()));
|
||||
return true;
|
||||
}
|
||||
|
||||
DatabaseManager oldDatabase = pluginRef.getDatabaseManagerFactory().createDatabaseManager(previousType);
|
||||
|
||||
if (previousType == DatabaseType.CUSTOM) {
|
||||
Class<?> clazz;
|
||||
|
||||
try {
|
||||
clazz = Class.forName(args[1]);
|
||||
|
||||
if (!DatabaseManager.class.isAssignableFrom(clazz)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mcconvert.Database.InvalidType", args[1]));
|
||||
return true;
|
||||
}
|
||||
|
||||
oldDatabase = pluginRef.getDatabaseManagerFactory().createCustomDatabaseManager((Class<? extends DatabaseManager>) clazz);
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mcconvert.Database.InvalidType", args[1]));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mcconvert.Database.Start", previousType.toString(), newType.toString()));
|
||||
|
||||
pluginRef.getUserManager().saveAll();
|
||||
pluginRef.getUserManager().clearAll();
|
||||
|
||||
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
|
||||
PlayerProfile profile = oldDatabase.loadPlayerProfile(player.getUniqueId());
|
||||
|
||||
if (profile.isLoaded()) {
|
||||
pluginRef.getDatabaseManager().saveUser(profile);
|
||||
}
|
||||
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setAsync(true)
|
||||
.setDelay(1L) // 1 Tick delay to ensure the player is marked as online before we begin loading
|
||||
.setTask(new PlayerProfileLoadingTask(pluginRef, player))
|
||||
.schedule();
|
||||
}
|
||||
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setAsync(true)
|
||||
.setTask(new DatabaseConversionTask(pluginRef, oldDatabase, sender, previousType.toString(), newType.toString()))
|
||||
.schedule();
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public DatabaseType getDatabaseType(String typeName) {
|
||||
for (DatabaseType type : DatabaseType.values()) {
|
||||
if (type.name().equalsIgnoreCase(typeName)) {
|
||||
return type;
|
||||
}
|
||||
}
|
||||
|
||||
if (typeName.equalsIgnoreCase("file")) {
|
||||
return DatabaseType.FLATFILE;
|
||||
} else if (typeName.equalsIgnoreCase("mysql")) {
|
||||
return DatabaseType.SQL;
|
||||
}
|
||||
|
||||
return DatabaseType.CUSTOM;
|
||||
}
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
package com.gmail.nossr50.commands.database;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class McremoveCommand implements TabExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public McremoveCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (args.length == 1) {
|
||||
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
|
||||
|
||||
if (pluginRef.getUserManager().getOfflinePlayer(playerName) == null && pluginRef.getCommandTools().unloadedProfile(sender, pluginRef.getDatabaseManager().loadPlayerProfile(playerName, false))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
UUID uuid = null;
|
||||
|
||||
if (Bukkit.getPlayer(playerName) != null) {
|
||||
uuid = Bukkit.getPlayer(playerName).getUniqueId();
|
||||
}
|
||||
|
||||
if (pluginRef.getDatabaseManager().removeUser(playerName, uuid)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mcremove.Success", playerName));
|
||||
} else {
|
||||
sender.sendMessage(playerName + " could not be removed from the database."); // Pretty sure this should NEVER happen.
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
List<String> playerNames = pluginRef.getCommandTools().getOnlinePlayerNames(sender);
|
||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<>(playerNames.size()));
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
package com.gmail.nossr50.commands.database;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class PurgeCommand implements TabExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PurgeCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
pluginRef.getDatabaseManager().purgePowerlessUsers();
|
||||
|
||||
if (pluginRef.getDatabaseCleaningSettings().getOldUserCutoffMonths() != -1) {
|
||||
pluginRef.getDatabaseManager().purgeOldUsers();
|
||||
}
|
||||
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mcpurge.Success"));
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
package com.gmail.nossr50.commands.database;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ShowDatabaseCommand implements TabExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public ShowDatabaseCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (args.length == 0) {
|
||||
Class<?> clazz = pluginRef.getDatabaseManagerFactory().getCustomDatabaseManagerClass();
|
||||
|
||||
if (clazz != null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mmoshowdb", clazz.getName()));
|
||||
return true;
|
||||
}
|
||||
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mmoshowdb", (pluginRef.getMySQLConfigSettings().isMySQLEnabled() ? "sql" : "flatfile")));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
package com.gmail.nossr50.commands.experience;
|
||||
|
||||
import com.gmail.nossr50.datatypes.experience.XPGainReason;
|
||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class AddLevelsCommand extends ExperienceCommand {
|
||||
|
||||
public AddLevelsCommand(mcMMO pluginRef) {
|
||||
super(pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean permissionsCheckSelf(CommandSender sender) {
|
||||
return pluginRef.getPermissionTools().addlevels(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean permissionsCheckOthers(CommandSender sender) {
|
||||
return pluginRef.getPermissionTools().addlevelsOthers(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill, int value) {
|
||||
double xpRemoved = profile.getSkillXpLevelRaw(skill);
|
||||
profile.addLevels(skill, value);
|
||||
|
||||
if (player == null) {
|
||||
profile.scheduleAsyncSave();
|
||||
return;
|
||||
}
|
||||
|
||||
pluginRef.getEventManager().tryLevelChangeEvent(player, skill, value, xpRemoved, true, XPGainReason.COMMAND);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handlePlayerMessageAll(Player player, int value) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.addlevels.AwardAll.1", value));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handlePlayerMessageSkill(Player player, int value, PrimarySkillType skill) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.addlevels.AwardSkill.1", value, pluginRef.getSkillTools().getLocalizedSkillName(skill)));
|
||||
}
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
package com.gmail.nossr50.commands.experience;
|
||||
|
||||
import com.gmail.nossr50.datatypes.experience.FormulaType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.runnables.database.FormulaConversionTask;
|
||||
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class ConvertExperienceCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public ConvertExperienceCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 2:
|
||||
|
||||
for(FormulaType formulaType : FormulaType.values()) {
|
||||
if(formulaType.toString().equalsIgnoreCase(args[1])) {
|
||||
FormulaType previousType = formulaType;
|
||||
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mcconvert.Experience.Start", previousType.toString(), pluginRef.getConfigManager().getConfigLeveling().getFormulaType().toString()));
|
||||
|
||||
pluginRef.getUserManager().saveAll();
|
||||
pluginRef.getUserManager().clearAll();
|
||||
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setDelay(1L)
|
||||
.setTask(new FormulaConversionTask(pluginRef, sender, previousType))
|
||||
.schedule();
|
||||
|
||||
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setAsync(true)
|
||||
.setDelay(1L) // 1 Tick delay to ensure the player is marked as online before we begin loading
|
||||
.setTask(new PlayerProfileLoadingTask(pluginRef, player))
|
||||
.schedule();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mcconvert.Experience.Invalid"));
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,173 +0,0 @@
|
||||
package com.gmail.nossr50.commands.experience;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public abstract class ExperienceCommand implements TabExecutor {
|
||||
|
||||
protected mcMMO pluginRef;
|
||||
|
||||
public ExperienceCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
protected void handleSenderMessage(CommandSender sender, String playerName, PrimarySkillType skill) {
|
||||
if (skill == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.addlevels.AwardAll.2", playerName));
|
||||
} else {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.addlevels.AwardSkill.2", pluginRef.getSkillTools().getLocalizedSkillName(skill), playerName));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
PrimarySkillType skill;
|
||||
|
||||
switch (args.length) {
|
||||
case 2:
|
||||
if (pluginRef.getCommandTools().noConsoleUsage(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!permissionsCheckSelf(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!validateArguments(sender, args[0], args[1])) {
|
||||
return true;
|
||||
}
|
||||
|
||||
skill = pluginRef.getSkillTools().matchSkill(args[0]);
|
||||
|
||||
if (args[1].equalsIgnoreCase("all")) {
|
||||
skill = null;
|
||||
}
|
||||
|
||||
if (skill != null && pluginRef.getSkillTools().isChildSkill(skill)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Skill.ChildSkill"));
|
||||
return true;
|
||||
}
|
||||
|
||||
//Profile not loaded
|
||||
if (pluginRef.getUserManager().getPlayer(sender.getName()) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
editValues((Player) sender, pluginRef.getUserManager().getPlayer(sender.getName()).getProfile(), skill, Integer.parseInt(args[1]));
|
||||
return true;
|
||||
|
||||
case 3:
|
||||
if (!permissionsCheckOthers(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!validateArguments(sender, args[1], args[2])) {
|
||||
return true;
|
||||
}
|
||||
|
||||
skill = pluginRef.getSkillTools().matchSkill(args[1]);
|
||||
|
||||
if (args[1].equalsIgnoreCase("all")) {
|
||||
skill = null;
|
||||
}
|
||||
|
||||
if (skill != null && pluginRef.getSkillTools().isChildSkill(skill)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Skill.ChildSkill"));
|
||||
return true;
|
||||
}
|
||||
|
||||
int value = Integer.parseInt(args[2]);
|
||||
|
||||
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
|
||||
|
||||
// If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process.
|
||||
if (mcMMOPlayer == null) {
|
||||
UUID uuid = null;
|
||||
OfflinePlayer player = Bukkit.getServer().getOfflinePlayer(playerName);
|
||||
if (player != null) {
|
||||
uuid = player.getUniqueId();
|
||||
}
|
||||
PlayerProfile profile = pluginRef.getDatabaseManager().loadPlayerProfile(playerName, uuid, false);
|
||||
|
||||
if (pluginRef.getCommandTools().unloadedProfile(sender, profile)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
editValues(null, profile, skill, value);
|
||||
} else {
|
||||
editValues(mcMMOPlayer.getNative(), mcMMOPlayer.getProfile(), skill, value);
|
||||
}
|
||||
|
||||
handleSenderMessage(sender, playerName, skill);
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
List<String> playerNames = pluginRef.getCommandTools().getOnlinePlayerNames(sender);
|
||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<>(playerNames.size()));
|
||||
case 2:
|
||||
return StringUtil.copyPartialMatches(args[1], pluginRef.getSkillTools().LOCALIZED_SKILL_NAMES, new ArrayList<>(pluginRef.getSkillTools().LOCALIZED_SKILL_NAMES.size()));
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract boolean permissionsCheckSelf(CommandSender sender);
|
||||
|
||||
protected abstract boolean permissionsCheckOthers(CommandSender sender);
|
||||
|
||||
protected abstract void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill, int value);
|
||||
|
||||
protected abstract void handlePlayerMessageAll(Player player, int value);
|
||||
|
||||
protected abstract void handlePlayerMessageSkill(Player player, int value, PrimarySkillType skill);
|
||||
|
||||
private boolean validateArguments(CommandSender sender, String skillName, String value) {
|
||||
return !(pluginRef.getCommandTools().isInvalidInteger(sender, value) || (!skillName.equalsIgnoreCase("all") && pluginRef.getCommandTools().isInvalidSkill(sender, skillName)));
|
||||
}
|
||||
|
||||
protected void editValues(Player player, PlayerProfile profile, PrimarySkillType skill, int value) {
|
||||
if (skill == null) {
|
||||
for (PrimarySkillType primarySkillType : pluginRef.getSkillTools().NON_CHILD_SKILLS) {
|
||||
handleCommand(player, profile, primarySkillType, value);
|
||||
}
|
||||
|
||||
if (player != null) {
|
||||
handlePlayerMessageAll(player, value);
|
||||
}
|
||||
} else {
|
||||
handleCommand(player, profile, skill, value);
|
||||
|
||||
if (player != null) {
|
||||
handlePlayerMessageSkill(player, value, skill);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,53 +0,0 @@
|
||||
package com.gmail.nossr50.commands.experience;
|
||||
|
||||
import com.gmail.nossr50.datatypes.experience.XPGainReason;
|
||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class SkillEditCommand extends ExperienceCommand {
|
||||
public SkillEditCommand(mcMMO pluginRef) {
|
||||
super(pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean permissionsCheckSelf(CommandSender sender) {
|
||||
return pluginRef.getPermissionTools().mmoedit(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean permissionsCheckOthers(CommandSender sender) {
|
||||
return pluginRef.getPermissionTools().mmoeditOthers(sender);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill, int value) {
|
||||
int skillLevel = profile.getSkillLevel(skill);
|
||||
double xpRemoved = profile.getSkillXpLevelRaw(skill);
|
||||
|
||||
profile.modifySkill(skill, value);
|
||||
|
||||
if (player == null) {
|
||||
profile.scheduleAsyncSave();
|
||||
return;
|
||||
}
|
||||
|
||||
if (value == skillLevel) {
|
||||
return;
|
||||
}
|
||||
|
||||
pluginRef.getEventManager().tryLevelEditEvent(player, skill, value, xpRemoved, value > skillLevel, XPGainReason.COMMAND, skillLevel);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handlePlayerMessageAll(Player player, int value) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.mmoedit.AllSkills.1", value));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handlePlayerMessageSkill(Player player, int value, PrimarySkillType skill) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.mmoedit.Modified.1", pluginRef.getSkillTools().getLocalizedSkillName(skill), value));
|
||||
}
|
||||
}
|
||||
@@ -1,178 +0,0 @@
|
||||
package com.gmail.nossr50.commands.experience;
|
||||
|
||||
import com.gmail.nossr50.datatypes.experience.XPGainReason;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* This class mirrors the structure of ExperienceCommand, except the
|
||||
* value/quantity argument is removed.
|
||||
*/
|
||||
public class SkillResetCommand implements TabExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public SkillResetCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
protected void handleSenderMessage(CommandSender sender, String playerName, PrimarySkillType skill) {
|
||||
if (skill == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.addlevels.AwardAll.2", playerName));
|
||||
} else {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.addlevels.AwardSkill.2", pluginRef.getSkillTools().getLocalizedSkillName(skill), playerName));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
PrimarySkillType skill;
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
if (pluginRef.getCommandTools().noConsoleUsage(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!permissionsCheckSelf(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!validateArguments(sender, args[0])) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("all")) {
|
||||
skill = null;
|
||||
} else {
|
||||
skill = pluginRef.getSkillTools().matchSkill(args[1]);
|
||||
}
|
||||
|
||||
editValues((Player) sender, pluginRef.getUserManager().getPlayer(sender.getName()).getProfile(), skill);
|
||||
return true;
|
||||
|
||||
case 2:
|
||||
if (!permissionsCheckOthers(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!validateArguments(sender, args[1])) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args[1].equalsIgnoreCase("all")) {
|
||||
skill = null;
|
||||
} else {
|
||||
skill = pluginRef.getSkillTools().matchSkill(args[1]);
|
||||
}
|
||||
|
||||
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
|
||||
|
||||
// If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process.
|
||||
if (mcMMOPlayer == null) {
|
||||
UUID uuid = null;
|
||||
OfflinePlayer player = Bukkit.getServer().getOfflinePlayer(playerName);
|
||||
if (player != null) {
|
||||
uuid = player.getUniqueId();
|
||||
}
|
||||
PlayerProfile profile = pluginRef.getDatabaseManager().loadPlayerProfile(playerName, uuid, false);
|
||||
|
||||
if (pluginRef.getCommandTools().unloadedProfile(sender, profile)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
editValues(null, profile, skill);
|
||||
} else {
|
||||
editValues(mcMMOPlayer.getNative(), mcMMOPlayer.getProfile(), skill);
|
||||
}
|
||||
|
||||
handleSenderMessage(sender, playerName, skill);
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
List<String> playerNames = pluginRef.getCommandTools().getOnlinePlayerNames(sender);
|
||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<>(playerNames.size()));
|
||||
case 2:
|
||||
return StringUtil.copyPartialMatches(args[1], pluginRef.getSkillTools().LOCALIZED_SKILL_NAMES, new ArrayList<>(pluginRef.getSkillTools().LOCALIZED_SKILL_NAMES.size()));
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
|
||||
protected void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill) {
|
||||
int levelsRemoved = profile.getSkillLevel(skill);
|
||||
double xpRemoved = profile.getSkillXpLevelRaw(skill);
|
||||
|
||||
profile.modifySkill(skill, 0);
|
||||
|
||||
if (player == null) {
|
||||
profile.scheduleAsyncSave();
|
||||
return;
|
||||
}
|
||||
|
||||
pluginRef.getEventManager().tryLevelChangeEvent(player, skill, levelsRemoved, xpRemoved, false, XPGainReason.COMMAND);
|
||||
}
|
||||
|
||||
protected boolean permissionsCheckSelf(CommandSender sender) {
|
||||
return pluginRef.getPermissionTools().skillreset(sender);
|
||||
}
|
||||
|
||||
protected boolean permissionsCheckOthers(CommandSender sender) {
|
||||
return pluginRef.getPermissionTools().skillresetOthers(sender);
|
||||
}
|
||||
|
||||
protected void handlePlayerMessageAll(Player player) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Reset.All"));
|
||||
}
|
||||
|
||||
protected void handlePlayerMessageSkill(Player player, PrimarySkillType skill) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Reset.Single", pluginRef.getSkillTools().getLocalizedSkillName(skill)));
|
||||
}
|
||||
|
||||
private boolean validateArguments(CommandSender sender, String skillName) {
|
||||
return skillName.equalsIgnoreCase("all") || !pluginRef.getCommandTools().isInvalidSkill(sender, skillName);
|
||||
}
|
||||
|
||||
protected void editValues(Player player, PlayerProfile profile, PrimarySkillType skill) {
|
||||
if (skill == null) {
|
||||
for (PrimarySkillType primarySkillType : pluginRef.getSkillTools().NON_CHILD_SKILLS) {
|
||||
handleCommand(player, profile, primarySkillType);
|
||||
}
|
||||
|
||||
if (player != null) {
|
||||
handlePlayerMessageAll(player);
|
||||
}
|
||||
} else {
|
||||
handleCommand(player, profile, skill);
|
||||
|
||||
if (player != null) {
|
||||
handlePlayerMessageSkill(player, skill);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PartyAcceptCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PartyAcceptCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (args.length == 1) {
|
||||
Player player = (Player) sender;
|
||||
|
||||
//Check if player profile is loaded
|
||||
if (pluginRef.getUserManager().getPlayer(player) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
|
||||
if (!mcMMOPlayer.hasPartyInvite()) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("mcMMO.NoInvites"));
|
||||
return true;
|
||||
}
|
||||
|
||||
// Changing parties
|
||||
if (!pluginRef.getPartyManager().changeOrJoinParty(mcMMOPlayer, mcMMOPlayer.getPartyInvite().getName())) {
|
||||
return true;
|
||||
}
|
||||
|
||||
pluginRef.getPartyManager().joinInvitedParty(mcMMOPlayer);
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.1", "party", "accept"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PartyChangeOwnerCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PartyChangeOwnerCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 2:
|
||||
//Check if player profile is loaded
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
Party playerParty = pluginRef.getUserManager().getPlayer((Player) sender).getParty();
|
||||
String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[1]);
|
||||
OfflinePlayer target = Bukkit.getServer().getOfflinePlayer(targetName);
|
||||
|
||||
if (!playerParty.hasMember(target.getUniqueId())) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.NotInYourParty", targetName));
|
||||
return true;
|
||||
}
|
||||
|
||||
pluginRef.getPartyManager().setPartyLeader(target.getUniqueId(), playerParty);
|
||||
return true;
|
||||
|
||||
default:
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.2", "party", "owner", "<" + pluginRef.getLocaleManager().getString("Commands.Usage.Player") + ">"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,279 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party;
|
||||
|
||||
import com.gmail.nossr50.commands.CommandConstants;
|
||||
import com.gmail.nossr50.commands.chat.PartyChatCommand;
|
||||
import com.gmail.nossr50.commands.party.alliance.PartyAllianceCommand;
|
||||
import com.gmail.nossr50.commands.party.teleport.PtpCommand;
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
//TODO: This class horrifies me, rewrite it at some point
|
||||
public class PartyCommand implements TabExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
private CommandExecutor partyJoinCommand;
|
||||
private CommandExecutor partyAcceptCommand;
|
||||
private CommandExecutor partyCreateCommand;
|
||||
private CommandExecutor partyQuitCommand;
|
||||
private CommandExecutor partyXpShareCommand;
|
||||
private CommandExecutor partyItemShareCommand;
|
||||
private CommandExecutor partyInviteCommand;
|
||||
private CommandExecutor partyKickCommand;
|
||||
private CommandExecutor partyDisbandCommand;
|
||||
private CommandExecutor partyChangeOwnerCommand;
|
||||
private CommandExecutor partyLockCommand;
|
||||
private CommandExecutor partyChangePasswordCommand;
|
||||
private CommandExecutor partyRenameCommand;
|
||||
private CommandExecutor partyInfoCommand;
|
||||
private CommandExecutor partyHelpCommand;
|
||||
private CommandExecutor partyTeleportCommand;
|
||||
private CommandExecutor partyChatCommand;
|
||||
private CommandExecutor partyAllianceCommand;
|
||||
|
||||
public PartyCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
initSubCommandList();
|
||||
|
||||
partyJoinCommand = new PartyJoinCommand(pluginRef);
|
||||
partyAcceptCommand = new PartyAcceptCommand(pluginRef);
|
||||
partyCreateCommand = new PartyCreateCommand(pluginRef);
|
||||
partyQuitCommand = new PartyQuitCommand(pluginRef);
|
||||
partyXpShareCommand = new PartyXpShareCommand(pluginRef);
|
||||
partyItemShareCommand = new PartyItemShareCommand(pluginRef);
|
||||
partyInviteCommand = new PartyInviteCommand(pluginRef);
|
||||
partyKickCommand = new PartyKickCommand(pluginRef);
|
||||
partyDisbandCommand = new PartyDisbandCommand(pluginRef);
|
||||
partyChangeOwnerCommand = new PartyChangeOwnerCommand(pluginRef);
|
||||
partyLockCommand = new PartyLockCommand(pluginRef);
|
||||
partyChangePasswordCommand = new PartyChangePasswordCommand(pluginRef);
|
||||
partyRenameCommand = new PartyRenameCommand(pluginRef);
|
||||
partyInfoCommand = new PartyInfoCommand(pluginRef);
|
||||
partyHelpCommand = new PartyHelpCommand(pluginRef);
|
||||
partyTeleportCommand = new PtpCommand(pluginRef);
|
||||
partyChatCommand = new PartyChatCommand(pluginRef);
|
||||
partyAllianceCommand = new PartyAllianceCommand(pluginRef);
|
||||
}
|
||||
|
||||
private List<String> PARTY_SUBCOMMANDS;
|
||||
private final List<String> XPSHARE_COMPLETIONS = ImmutableList.of("none", "equal");
|
||||
private final List<String> ITEMSHARE_COMPLETIONS = ImmutableList.of("none", "equal", "random", "loot", "mining", "herbalism", "woodcutting", "misc");
|
||||
|
||||
private void initSubCommandList() {
|
||||
ArrayList<String> subcommands = new ArrayList<>();
|
||||
|
||||
for (PartySubcommandType subcommand : PartySubcommandType.values()) {
|
||||
subcommands.add(subcommand.toString());
|
||||
}
|
||||
|
||||
Collections.sort(subcommands);
|
||||
PARTY_SUBCOMMANDS = ImmutableList.copyOf(subcommands);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
//If the party system is disabled, don't fire this command
|
||||
if (!pluginRef.getConfigManager().getConfigParty().isPartySystemEnabled())
|
||||
return true;
|
||||
|
||||
if (pluginRef.getCommandTools().noConsoleUsage(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!pluginRef.getPermissionTools().party(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
|
||||
if (!pluginRef.getUserManager().hasPlayerDataKey(player)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (pluginRef.getUserManager().getPlayer(player) == null) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
if (args.length < 1) {
|
||||
if (!mcMMOPlayer.inParty()) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None"));
|
||||
return printUsage(player);
|
||||
}
|
||||
|
||||
return partyInfoCommand.onCommand(sender, command, label, args);
|
||||
}
|
||||
|
||||
PartySubcommandType subcommand = PartySubcommandType.getSubcommand(args[0]);
|
||||
|
||||
if (subcommand == null) {
|
||||
return printUsage(player);
|
||||
}
|
||||
|
||||
// Can't use this for lock/unlock since they're handled by the same command
|
||||
if (subcommand != PartySubcommandType.LOCK && subcommand != PartySubcommandType.UNLOCK && !pluginRef.getPermissionTools().partySubcommand(sender, subcommand)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
switch (subcommand) {
|
||||
case JOIN:
|
||||
return partyJoinCommand.onCommand(sender, command, label, args);
|
||||
case ACCEPT:
|
||||
return partyAcceptCommand.onCommand(sender, command, label, args);
|
||||
case CREATE:
|
||||
return partyCreateCommand.onCommand(sender, command, label, args);
|
||||
case HELP:
|
||||
return partyHelpCommand.onCommand(sender, command, label, args);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// Party member commands
|
||||
if (!mcMMOPlayer.inParty()) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None"));
|
||||
return printUsage(player);
|
||||
}
|
||||
|
||||
switch (subcommand) {
|
||||
case INFO:
|
||||
return partyInfoCommand.onCommand(sender, command, label, args);
|
||||
case QUIT:
|
||||
return partyQuitCommand.onCommand(sender, command, label, args);
|
||||
case INVITE:
|
||||
return partyInviteCommand.onCommand(sender, command, label, args);
|
||||
case TELEPORT:
|
||||
return partyTeleportCommand.onCommand(sender, command, label, extractArgs(args));
|
||||
case CHAT:
|
||||
return partyChatCommand.onCommand(sender, command, label, extractArgs(args));
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// Party leader commands
|
||||
if (!mcMMOPlayer.getParty().getLeader().getUniqueId().equals(player.getUniqueId())) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.NotOwner"));
|
||||
return true;
|
||||
}
|
||||
|
||||
switch (subcommand) {
|
||||
case XPSHARE:
|
||||
return partyXpShareCommand.onCommand(sender, command, label, args);
|
||||
case ITEMSHARE:
|
||||
return partyItemShareCommand.onCommand(sender, command, label, args);
|
||||
case KICK:
|
||||
return partyKickCommand.onCommand(sender, command, label, args);
|
||||
case DISBAND:
|
||||
return partyDisbandCommand.onCommand(sender, command, label, args);
|
||||
case OWNER:
|
||||
return partyChangeOwnerCommand.onCommand(sender, command, label, args);
|
||||
case LOCK:
|
||||
case UNLOCK:
|
||||
return partyLockCommand.onCommand(sender, command, label, args);
|
||||
case PASSWORD:
|
||||
return partyChangePasswordCommand.onCommand(sender, command, label, args);
|
||||
case RENAME:
|
||||
return partyRenameCommand.onCommand(sender, command, label, args);
|
||||
case ALLIANCE:
|
||||
return partyAllianceCommand.onCommand(sender, command, label, args);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
return StringUtil.copyPartialMatches(args[0], PARTY_SUBCOMMANDS, new ArrayList<>(PARTY_SUBCOMMANDS.size()));
|
||||
case 2:
|
||||
PartySubcommandType subcommand = PartySubcommandType.getSubcommand(args[0]);
|
||||
|
||||
if (subcommand == null) {
|
||||
return ImmutableList.of();
|
||||
}
|
||||
|
||||
switch (subcommand) {
|
||||
case JOIN:
|
||||
case INVITE:
|
||||
case KICK:
|
||||
case OWNER:
|
||||
List<String> playerNames = pluginRef.getCommandTools().getOnlinePlayerNames(sender);
|
||||
return StringUtil.copyPartialMatches(args[1], playerNames, new ArrayList<>(playerNames.size()));
|
||||
case XPSHARE:
|
||||
return StringUtil.copyPartialMatches(args[1], XPSHARE_COMPLETIONS, new ArrayList<>(XPSHARE_COMPLETIONS.size()));
|
||||
case ITEMSHARE:
|
||||
return StringUtil.copyPartialMatches(args[1], ITEMSHARE_COMPLETIONS, new ArrayList<>(ITEMSHARE_COMPLETIONS.size()));
|
||||
case LOCK:
|
||||
case CHAT:
|
||||
return StringUtil.copyPartialMatches(args[1], CommandConstants.TRUE_FALSE_OPTIONS, new ArrayList<>(CommandConstants.TRUE_FALSE_OPTIONS.size()));
|
||||
case PASSWORD:
|
||||
return StringUtil.copyPartialMatches(args[1], CommandConstants.RESET_OPTIONS, new ArrayList<>(CommandConstants.RESET_OPTIONS.size()));
|
||||
case TELEPORT:
|
||||
List<String> matches = StringUtil.copyPartialMatches(args[1], CommandConstants.TELEPORT_SUBCOMMANDS, new ArrayList<>(CommandConstants.TELEPORT_SUBCOMMANDS.size()));
|
||||
|
||||
if (matches.size() == 0) {
|
||||
Player player = (Player) sender;
|
||||
|
||||
//Not Loaded
|
||||
if (pluginRef.getUserManager().getPlayer(player) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return ImmutableList.of();
|
||||
}
|
||||
|
||||
Party party = pluginRef.getUserManager().getPlayer(player).getParty();
|
||||
|
||||
playerNames = party.getOnlinePlayerNames(player);
|
||||
return StringUtil.copyPartialMatches(args[1], playerNames, new ArrayList<>(playerNames.size()));
|
||||
}
|
||||
|
||||
return matches;
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
case 3:
|
||||
if (PartySubcommandType.getSubcommand(args[0]) == PartySubcommandType.ITEMSHARE && isItemShareCategory(args[1])) {
|
||||
return StringUtil.copyPartialMatches(args[2], CommandConstants.TRUE_FALSE_OPTIONS, new ArrayList<>(CommandConstants.TRUE_FALSE_OPTIONS.size()));
|
||||
}
|
||||
|
||||
return ImmutableList.of();
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean printUsage(Player player) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Party.Help.0", "/party join"));
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Party.Help.1", "/party create"));
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Party.Help.2", "/party ?"));
|
||||
return true;
|
||||
}
|
||||
|
||||
private String[] extractArgs(String[] args) {
|
||||
return Arrays.copyOfRange(args, 1, args.length);
|
||||
}
|
||||
|
||||
private boolean isItemShareCategory(String category) {
|
||||
return category.equalsIgnoreCase("loot") || category.equalsIgnoreCase("mining") || category.equalsIgnoreCase("herbalism") || category.equalsIgnoreCase("woodcutting") || category.equalsIgnoreCase("misc");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PartyCreateCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PartyCreateCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 2:
|
||||
case 3:
|
||||
Player player = (Player) sender;
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
if (pluginRef.getUserManager().getPlayer(player) == null) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
// Check to see if the party exists, and if it does cancel creating a new party
|
||||
if (pluginRef.getPartyManager().checkPartyExistence(player, args[1])) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Changing parties
|
||||
if (!pluginRef.getPartyManager().changeOrJoinParty(mcMMOPlayer, args[1])) {
|
||||
return true;
|
||||
}
|
||||
|
||||
pluginRef.getPartyManager().createParty(mcMMOPlayer, args[1], getPassword(args));
|
||||
return true;
|
||||
|
||||
default:
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.3", "party", "create", "<" + pluginRef.getLocaleManager().getString("Commands.Usage.PartyName") + ">", "[" + pluginRef.getLocaleManager().getString("Commands.Usage.Password") + "]"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private String getPassword(String[] args) {
|
||||
if (args.length == 3) {
|
||||
return args[2];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PartyDisbandCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PartyDisbandCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
Party playerParty = pluginRef.getUserManager().getPlayer((Player) sender).getParty();
|
||||
String partyName = playerParty.getName();
|
||||
|
||||
for (Player member : playerParty.getOnlineMembers()) {
|
||||
if (!pluginRef.getPartyManager().handlePartyChangeEvent(member, partyName, null, EventReason.KICKED_FROM_PARTY)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
member.sendMessage(pluginRef.getLocaleManager().getString("Party.Disband"));
|
||||
}
|
||||
|
||||
pluginRef.getPartyManager().disbandParty(playerParty);
|
||||
return true;
|
||||
|
||||
default:
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.1", "party", "disband"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class PartyHelpCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PartyHelpCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Help.3", "/party join", "/party quit"));
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Help.1", "/party create"));
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Help.4", "/party <lock|unlock>"));
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Help.5", "/party password"));
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Help.6", "/party kick"));
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Help.7", "/party leader"));
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Help.8", "/party disband"));
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Help.9", "/party itemshare"));
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Help.10", "/party xpshare"));
|
||||
return true;
|
||||
|
||||
default:
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.1", "party", "help"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,148 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
||||
import com.gmail.nossr50.datatypes.party.ShareMode;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.StringUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class PartyInfoCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PartyInfoCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
case 1:
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
Party party = mcMMOPlayer.getParty();
|
||||
|
||||
displayPartyHeader(player, party);
|
||||
displayShareModeInfo(player, party);
|
||||
displayPartyFeatures(player, party);
|
||||
displayMemberInfo(player, mcMMOPlayer, party);
|
||||
return true;
|
||||
|
||||
default:
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.1", "party", "info"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private void displayPartyHeader(Player player, Party party) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Header"));
|
||||
|
||||
/*if (!party.hasReachedLevelCap()) {
|
||||
status.append(" (").append(party.getXpToLevelPercentage()).append(")");
|
||||
}*/
|
||||
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Status", party.getName(), pluginRef.getLocaleManager().getString("Party.Status." + (party.isLocked() ? "Locked" : "Unlocked")), party.getLevel())
|
||||
/*if (!party.hasReachedLevelCap()) {
|
||||
status.append(" (").append(party.getXpToLevelPercentage()).append(")");
|
||||
}*/);
|
||||
}
|
||||
|
||||
private void displayPartyFeatures(Player player, Party party) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Features.Header"));
|
||||
|
||||
List<String> unlockedPartyFeatures = new ArrayList<>();
|
||||
List<String> lockedPartyFeatures = new ArrayList<>();
|
||||
|
||||
for (PartyFeature partyFeature : PartyFeature.values()) {
|
||||
if (!partyFeature.hasPermission(pluginRef, player)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (isUnlockedFeature(party, partyFeature)) {
|
||||
unlockedPartyFeatures.add(getPartyFeatureLocaleString(partyFeature));
|
||||
} else {
|
||||
lockedPartyFeatures.add(getFeatureLockedLocaleString(partyFeature));
|
||||
}
|
||||
}
|
||||
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.UnlockedFeatures", unlockedPartyFeatures.isEmpty() ? "None" : unlockedPartyFeatures));
|
||||
|
||||
for (String message : lockedPartyFeatures) {
|
||||
player.sendMessage(message);
|
||||
}
|
||||
}
|
||||
|
||||
public String getPartyFeatureLocaleString(PartyFeature partyFeature) {
|
||||
return pluginRef.getLocaleManager().getString("Party.Feature." + StringUtils.getPrettyPartyFeatureString(partyFeature).replace(" ", ""));
|
||||
}
|
||||
|
||||
public String getFeatureLockedLocaleString(PartyFeature partyFeature) {
|
||||
return pluginRef.getLocaleManager().getString("Ability.Generic.Template.Lock",
|
||||
pluginRef.getLocaleManager().getString("Party.Feature.Locked."
|
||||
+ StringUtils.getPrettyPartyFeatureString(partyFeature).replace(" ", ""),
|
||||
pluginRef.getPartyManager().getPartyFeatureUnlockLevel(partyFeature)));
|
||||
}
|
||||
|
||||
private boolean isUnlockedFeature(Party party, PartyFeature partyFeature) {
|
||||
return party.getLevel() >= pluginRef.getPartyManager().getPartyFeatureUnlockLevel(partyFeature);
|
||||
}
|
||||
|
||||
private void displayShareModeInfo(Player player, Party party) {
|
||||
boolean xpShareEnabled = isUnlockedFeature(party, PartyFeature.XP_SHARE);
|
||||
boolean itemShareEnabled = isUnlockedFeature(party, PartyFeature.ITEM_SHARE);
|
||||
boolean itemSharingActive = (party.getItemShareMode() != ShareMode.NONE);
|
||||
|
||||
if (!xpShareEnabled && !itemShareEnabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
String expShareInfo = "";
|
||||
String itemShareInfo = "";
|
||||
String separator = "";
|
||||
|
||||
if (xpShareEnabled) {
|
||||
expShareInfo = pluginRef.getLocaleManager().getString("Commands.Party.ExpShare", party.getXpShareMode().toString());
|
||||
}
|
||||
|
||||
if (itemShareEnabled) {
|
||||
itemShareInfo = pluginRef.getLocaleManager().getString("Commands.Party.ItemShare", party.getItemShareMode().toString());
|
||||
}
|
||||
|
||||
if (xpShareEnabled && itemShareEnabled) {
|
||||
separator = ChatColor.DARK_GRAY + " || ";
|
||||
}
|
||||
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.ShareMode") + expShareInfo + separator + itemShareInfo);
|
||||
|
||||
if (itemSharingActive) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.ItemShareCategories", party.getItemShareCategories()));
|
||||
}
|
||||
}
|
||||
|
||||
private void displayMemberInfo(Player player, BukkitMMOPlayer mcMMOPlayer, Party party) {
|
||||
/*
|
||||
* Only show members of the party that this member can see
|
||||
*/
|
||||
|
||||
List<Player> nearMembers = pluginRef.getPartyManager().getNearVisibleMembers(mcMMOPlayer);
|
||||
int membersOnline = party.getVisibleMembers(player).size();
|
||||
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Members.Header"));
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.MembersNear", nearMembers.size() + 1, membersOnline));
|
||||
player.sendMessage(party.createMembersList(player));
|
||||
}
|
||||
}
|
||||
@@ -1,78 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PartyInviteCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PartyInviteCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 2:
|
||||
String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[1]);
|
||||
BukkitMMOPlayer mcMMOTarget = pluginRef.getUserManager().getOfflinePlayer(targetName);
|
||||
|
||||
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Player target = mcMMOTarget.getNative();
|
||||
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
String playerName = player.getName();
|
||||
|
||||
if (player.equals(target)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Invite.Self"));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (pluginRef.getPartyManager().inSameParty(player, target)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Player.InSameParty", targetName));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!pluginRef.getPartyManager().canInvite(mcMMOPlayer)) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Party.Locked"));
|
||||
return true;
|
||||
}
|
||||
|
||||
Party playerParty = mcMMOPlayer.getParty();
|
||||
|
||||
if (pluginRef.getConfigManager().getConfigParty().getPartyGeneral().isPartySizeCapped())
|
||||
if (pluginRef.getPartyManager().isPartyFull(target, playerParty)) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.PartyFull.Invite",
|
||||
target.getName(), playerParty.toString(),
|
||||
pluginRef.getConfigManager().getConfigParty().getPartySizeLimit()));
|
||||
return true;
|
||||
}
|
||||
|
||||
mcMMOTarget.setPartyInvite(playerParty);
|
||||
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Invite.Success"));
|
||||
target.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Invite.0", playerParty.getName(), playerName));
|
||||
target.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Invite.1"));
|
||||
return true;
|
||||
|
||||
default:
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.2", "party", "invite", "<" + pluginRef.getLocaleManager().getString("Commands.Usage.Player") + ">"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.ItemShareType;
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
||||
import com.gmail.nossr50.datatypes.party.ShareMode;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.StringUtils;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class PartyItemShareCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PartyItemShareCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
Party party = pluginRef.getUserManager().getPlayer((Player) sender).getParty();
|
||||
|
||||
if (party.getLevel() < pluginRef.getPartyManager().getPartyFeatureUnlockLevel(PartyFeature.ITEM_SHARE)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Feature.Disabled.4"));
|
||||
return true;
|
||||
}
|
||||
|
||||
switch (args.length) {
|
||||
case 2:
|
||||
ShareMode mode = ShareMode.getShareMode(args[1].toUpperCase(Locale.ENGLISH));
|
||||
|
||||
if (mode == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.2", "party", "itemshare", "<NONE | EQUAL | RANDOM>"));
|
||||
return true;
|
||||
}
|
||||
|
||||
handleChangingShareMode(party, mode);
|
||||
return true;
|
||||
|
||||
case 3:
|
||||
boolean toggle;
|
||||
|
||||
if (pluginRef.getCommandTools().shouldEnableToggle(args[2])) {
|
||||
toggle = true;
|
||||
} else if (pluginRef.getCommandTools().shouldDisableToggle(args[2])) {
|
||||
toggle = false;
|
||||
} else {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.2", "party", "itemshare", "<loot | mining | herbalism | woodcutting | misc> <true | false>"));
|
||||
return true;
|
||||
}
|
||||
|
||||
try {
|
||||
handleToggleItemShareCategory(party, ItemShareType.valueOf(args[1].toUpperCase(Locale.ENGLISH)), toggle);
|
||||
} catch (IllegalArgumentException ex) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.2", "party", "itemshare", "<loot | mining | herbalism | woodcutting | misc> <true | false>"));
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
default:
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.2", "party", "itemshare", "<NONE | EQUAL | RANDOM>"));
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.2", "party", "itemshare", "<loot | mining | herbalism | woodcutting | misc> <true | false>"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private void handleChangingShareMode(Party party, ShareMode mode) {
|
||||
party.setItemShareMode(mode);
|
||||
|
||||
String changeModeMessage = pluginRef.getLocaleManager().getString("Commands.Party.SetSharing", pluginRef.getLocaleManager().getString("Party.ShareType.Item"), pluginRef.getLocaleManager().getString("Party.ShareMode." + StringUtils.getCapitalized(mode.toString())));
|
||||
|
||||
for (Player member : party.getOnlineMembers()) {
|
||||
member.sendMessage(changeModeMessage);
|
||||
}
|
||||
}
|
||||
|
||||
private void handleToggleItemShareCategory(Party party, ItemShareType type, boolean toggle) {
|
||||
party.setSharingDrops(type, toggle);
|
||||
|
||||
String toggleMessage = pluginRef.getLocaleManager().getString("Commands.Party.ToggleShareCategory", StringUtils.getCapitalized(type.toString()), toggle ? "enabled" : "disabled");
|
||||
|
||||
for (Player member : party.getOnlineMembers()) {
|
||||
member.sendMessage(toggleMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PartyJoinCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PartyJoinCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 2:
|
||||
case 3:
|
||||
String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[1]);
|
||||
BukkitMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetName);
|
||||
|
||||
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
Player target = mcMMOTarget.getNative();
|
||||
|
||||
if (!mcMMOTarget.inParty()) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.PlayerNotInParty", targetName));
|
||||
return true;
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
Party targetParty = mcMMOTarget.getParty();
|
||||
|
||||
if (player.equals(target) || (mcMMOPlayer.inParty() && mcMMOPlayer.getParty().equals(targetParty))) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Join.Self"));
|
||||
return true;
|
||||
}
|
||||
|
||||
String password = getPassword(args);
|
||||
|
||||
// Make sure party passwords match
|
||||
if (!pluginRef.getPartyManager().checkPartyPassword(player, targetParty, password)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
String partyName = targetParty.getName();
|
||||
|
||||
// Changing parties
|
||||
if (!pluginRef.getPartyManager().changeOrJoinParty(mcMMOPlayer, partyName)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (pluginRef.getConfigManager().getConfigParty().getPartyGeneral().isPartySizeCapped())
|
||||
if (pluginRef.getPartyManager().isPartyFull(player, targetParty)) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.PartyFull", targetParty.toString()));
|
||||
return true;
|
||||
}
|
||||
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Join", partyName));
|
||||
pluginRef.getPartyManager().addToParty(mcMMOPlayer, targetParty);
|
||||
return true;
|
||||
|
||||
default:
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.3", "party", "join", "<" + pluginRef.getLocaleManager().getString("Commands.Usage.Player") + ">", "[" + pluginRef.getLocaleManager().getString("Commands.Usage.Password") + "]"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private String getPassword(String[] args) {
|
||||
if (args.length == 3) {
|
||||
return args[2];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PartyKickCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PartyKickCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 2:
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
Party playerParty = pluginRef.getUserManager().getPlayer((Player) sender).getParty();
|
||||
String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[1]);
|
||||
|
||||
if (!playerParty.hasMember(targetName)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.NotInYourParty", targetName));
|
||||
return true;
|
||||
}
|
||||
|
||||
OfflinePlayer target = Bukkit.getServer().getOfflinePlayer(targetName);
|
||||
|
||||
if (target.isOnline()) {
|
||||
Player onlineTarget = target.getPlayer();
|
||||
String partyName = playerParty.getName();
|
||||
|
||||
if (!pluginRef.getPartyManager().handlePartyChangeEvent(onlineTarget, partyName, null, EventReason.KICKED_FROM_PARTY)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
pluginRef.getPartyManager().processPartyLeaving(pluginRef.getUserManager().getPlayer(onlineTarget));
|
||||
onlineTarget.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Kick", partyName));
|
||||
}
|
||||
|
||||
pluginRef.getPartyManager().removeFromParty(target, playerParty);
|
||||
return true;
|
||||
|
||||
default:
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.2", "party", "kick", "<" + pluginRef.getLocaleManager().getString("Commands.Usage.Player") + ">"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,78 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PartyLockCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PartyLockCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
if (args[0].equalsIgnoreCase("lock")) {
|
||||
togglePartyLock(sender, true);
|
||||
} else if (args[0].equalsIgnoreCase("unlock")) {
|
||||
togglePartyLock(sender, false);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
case 2:
|
||||
if (!args[0].equalsIgnoreCase("lock")) {
|
||||
sendUsageStrings(sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (pluginRef.getCommandTools().shouldEnableToggle(args[1])) {
|
||||
togglePartyLock(sender, true);
|
||||
} else if (pluginRef.getCommandTools().shouldDisableToggle(args[1])) {
|
||||
togglePartyLock(sender, false);
|
||||
} else {
|
||||
sendUsageStrings(sender);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
default:
|
||||
sendUsageStrings(sender);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private void sendUsageStrings(CommandSender sender) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.2", "party", "lock", "[on|off]"));
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.1", "party", "unlock"));
|
||||
}
|
||||
|
||||
private void togglePartyLock(CommandSender sender, boolean lock) {
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return;
|
||||
}
|
||||
|
||||
Party party = pluginRef.getUserManager().getPlayer((Player) sender).getParty();
|
||||
|
||||
if (!pluginRef.getPermissionTools().partySubcommand(sender, lock ? PartySubcommandType.LOCK : PartySubcommandType.UNLOCK)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("mcMMO.NoPermission"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (lock ? party.isLocked() : !party.isLocked()) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party." + (lock ? "IsLocked" : "IsntLocked")));
|
||||
return;
|
||||
}
|
||||
|
||||
party.setLocked(lock);
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party." + (lock ? "Locked" : "Unlocked")));
|
||||
}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PartyQuitCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PartyQuitCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
Player player = (Player) sender;
|
||||
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
Party playerParty = mcMMOPlayer.getParty();
|
||||
|
||||
if (!pluginRef.getPartyManager().handlePartyChangeEvent(player, playerParty.getName(), null, EventReason.LEFT_PARTY)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
pluginRef.getPartyManager().removeFromParty(mcMMOPlayer);
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Leave"));
|
||||
return true;
|
||||
|
||||
default:
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.1", "party", "quit"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PartyRenameCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PartyRenameCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 2:
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer((Player) sender);
|
||||
Party playerParty = mcMMOPlayer.getParty();
|
||||
|
||||
String oldPartyName = playerParty.getName();
|
||||
String newPartyName = args[1];
|
||||
|
||||
// This is to prevent party leaders from spamming other players with the rename message
|
||||
if (oldPartyName.equalsIgnoreCase(newPartyName)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Rename.Same"));
|
||||
return true;
|
||||
}
|
||||
|
||||
Player player = mcMMOPlayer.getNative();
|
||||
|
||||
// Check to see if the party exists, and if it does cancel renaming the party
|
||||
if (pluginRef.getPartyManager().checkPartyExistence(player, newPartyName)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
String leaderName = playerParty.getLeader().getPlayerName();
|
||||
|
||||
for (Player member : playerParty.getOnlineMembers()) {
|
||||
if (!pluginRef.getPartyManager().handlePartyChangeEvent(member, oldPartyName, newPartyName, EventReason.CHANGED_PARTIES)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!member.getName().equalsIgnoreCase(leaderName)) {
|
||||
member.sendMessage(pluginRef.getLocaleManager().getString("Party.InformedOnNameChange", leaderName, newPartyName));
|
||||
}
|
||||
}
|
||||
|
||||
playerParty.setName(newPartyName);
|
||||
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Rename", newPartyName));
|
||||
return true;
|
||||
|
||||
default:
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.2", "party", "rename", "<" + pluginRef.getLocaleManager().getString("Commands.Usage.PartyName") + ">"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
||||
import com.gmail.nossr50.datatypes.party.ShareMode;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.StringUtils;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PartyXpShareCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PartyXpShareCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
Party party = pluginRef.getUserManager().getPlayer((Player) sender).getParty();
|
||||
|
||||
if (party.getLevel() < pluginRef.getPartyManager().getPartyFeatureUnlockLevel(PartyFeature.XP_SHARE)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Feature.Disabled.5"));
|
||||
return true;
|
||||
}
|
||||
|
||||
switch (args.length) {
|
||||
case 2:
|
||||
if (args[1].equalsIgnoreCase("none") || pluginRef.getCommandTools().shouldDisableToggle(args[1])) {
|
||||
handleChangingShareMode(party, ShareMode.NONE);
|
||||
} else if (args[1].equalsIgnoreCase("equal") || args[1].equalsIgnoreCase("even") || pluginRef.getCommandTools().shouldEnableToggle(args[1])) {
|
||||
handleChangingShareMode(party, ShareMode.EQUAL);
|
||||
} else {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.2", "party", "xpshare", "<NONE | EQUAL>"));
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
default:
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.2", "party", "xpshare", "<NONE | EQUAL>"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private void handleChangingShareMode(Party party, ShareMode mode) {
|
||||
party.setXpShareMode(mode);
|
||||
|
||||
String changeModeMessage = pluginRef.getLocaleManager().getString("Commands.Party.SetSharing", pluginRef.getLocaleManager().getString("Party.ShareType.Xp"), pluginRef.getLocaleManager().getString("Party.ShareMode." + StringUtils.getCapitalized(mode.toString())));
|
||||
|
||||
for (Player member : party.getOnlineMembers()) {
|
||||
member.sendMessage(changeModeMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party.alliance;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PartyAllianceAcceptCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PartyAllianceAcceptCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 2:
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
if (!mcMMOPlayer.hasPartyAllianceInvite()) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("mcMMO.NoInvites"));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (mcMMOPlayer.getParty().getAlly() != null) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Alliance.AlreadyAllies"));
|
||||
return true;
|
||||
}
|
||||
|
||||
pluginRef.getPartyManager().acceptAllianceInvite(mcMMOPlayer);
|
||||
return true;
|
||||
|
||||
default:
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.2", "party", "alliance", "accept"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,141 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party.alliance;
|
||||
|
||||
import com.gmail.nossr50.commands.CommandConstants;
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class PartyAllianceCommand implements TabExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
private Player player;
|
||||
private Party playerParty;
|
||||
private Party targetParty;
|
||||
private CommandExecutor partyAllianceInviteCommand;
|
||||
private CommandExecutor partyAllianceAcceptCommand;
|
||||
private CommandExecutor partyAllianceDisbandCommand;
|
||||
|
||||
public PartyAllianceCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
|
||||
//Init SubCommands
|
||||
partyAllianceInviteCommand = new PartyAllianceInviteCommand(pluginRef);
|
||||
partyAllianceAcceptCommand = new PartyAllianceAcceptCommand(pluginRef);
|
||||
partyAllianceDisbandCommand = new PartyAllianceDisbandCommand(pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (pluginRef.getCommandTools().noConsoleUsage(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
player = (Player) sender;
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
playerParty = mcMMOPlayer.getParty();
|
||||
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
if (playerParty.getLevel() < pluginRef.getPartyManager().getPartyFeatureUnlockLevel(PartyFeature.ALLIANCE)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Feature.Disabled.3"));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (playerParty.getAlly() == null) {
|
||||
printUsage();
|
||||
return true;
|
||||
}
|
||||
|
||||
targetParty = playerParty.getAlly();
|
||||
|
||||
displayPartyHeader();
|
||||
displayMemberInfo(mcMMOPlayer);
|
||||
return true;
|
||||
|
||||
case 2:
|
||||
case 3:
|
||||
if (playerParty.getLevel() < pluginRef.getPartyManager().getPartyFeatureUnlockLevel(PartyFeature.ALLIANCE)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Feature.Disabled.3"));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args[1].equalsIgnoreCase("invite")) {
|
||||
return partyAllianceInviteCommand.onCommand(sender, command, label, args);
|
||||
}
|
||||
|
||||
if (args[1].equalsIgnoreCase("accept")) {
|
||||
return partyAllianceAcceptCommand.onCommand(sender, command, label, args);
|
||||
}
|
||||
|
||||
if (args[1].equalsIgnoreCase("disband")) {
|
||||
return partyAllianceDisbandCommand.onCommand(sender, command, label, args);
|
||||
}
|
||||
|
||||
if (playerParty.getAlly() == null) {
|
||||
printUsage();
|
||||
return true;
|
||||
}
|
||||
|
||||
targetParty = playerParty.getAlly();
|
||||
|
||||
displayPartyHeader();
|
||||
displayMemberInfo(mcMMOPlayer);
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private void printUsage() {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Alliance.Help.0"));
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Alliance.Help.1"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender commandSender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
List<String> matches = StringUtil.copyPartialMatches(args[0], CommandConstants.ALLIANCE_SUBCOMMANDS, new ArrayList<>(CommandConstants.ALLIANCE_SUBCOMMANDS.size()));
|
||||
|
||||
if (matches.size() == 0) {
|
||||
List<String> playerNames = pluginRef.getCommandTools().getOnlinePlayerNames(commandSender);
|
||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<>(playerNames.size()));
|
||||
}
|
||||
|
||||
return matches;
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
|
||||
private void displayPartyHeader() {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Alliance.Header"));
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Alliance.Ally", playerParty.getName(), targetParty.getName()));
|
||||
}
|
||||
|
||||
private void displayMemberInfo(BukkitMMOPlayer mcMMOPlayer) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Alliance.Members.Header"));
|
||||
player.sendMessage(playerParty.createMembersList(player));
|
||||
player.sendMessage(ChatColor.DARK_GRAY + "----------------------------");
|
||||
player.sendMessage(targetParty.createMembersList(player));
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party.alliance;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PartyAllianceDisbandCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PartyAllianceDisbandCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 2:
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
Party party = mcMMOPlayer.getParty();
|
||||
|
||||
if (party.getAlly() == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Alliance.None"));
|
||||
return true;
|
||||
}
|
||||
|
||||
pluginRef.getPartyManager().disbandAlliance(player, party, party.getAlly());
|
||||
return true;
|
||||
|
||||
default:
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.2", "party", "alliance", "disband"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party.alliance;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PartyAllianceInviteCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PartyAllianceInviteCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 3:
|
||||
String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[2]);
|
||||
BukkitMMOPlayer mcMMOTarget = pluginRef.getUserManager().getOfflinePlayer(targetName);
|
||||
|
||||
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Player target = mcMMOTarget.getNative();
|
||||
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
String playerName = player.getName();
|
||||
|
||||
if (player.equals(target)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Invite.Self"));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!mcMMOTarget.inParty()) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Party.PlayerNotInParty", targetName));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (pluginRef.getPartyManager().inSameParty(player, target)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Player.InSameParty", targetName));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!mcMMOTarget.getParty().getLeader().getUniqueId().equals(target.getUniqueId())) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Party.Target.NotOwner", targetName));
|
||||
return true;
|
||||
}
|
||||
|
||||
Party playerParty = mcMMOPlayer.getParty();
|
||||
|
||||
if (playerParty.getAlly() != null) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Alliance.AlreadyAllies"));
|
||||
return true;
|
||||
}
|
||||
|
||||
mcMMOTarget.setPartyAllianceInvite(playerParty);
|
||||
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Invite.Success"));
|
||||
target.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Alliance.Invite.0", playerParty.getName(), playerName));
|
||||
target.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Alliance.Invite.1"));
|
||||
return true;
|
||||
|
||||
default:
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.3", "party", "alliance", "invite", "<" + pluginRef.getLocaleManager().getString("Commands.Usage.Player") + ">"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party.teleport;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.PartyTeleportRecord;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class PtpAcceptAnyCommand implements CommandExecutor {
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PtpAcceptAnyCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!pluginRef.getPermissionTools().partyTeleportAcceptAll(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
PartyTeleportRecord ptpRecord = pluginRef.getUserManager().getPlayer(sender.getName()).getPartyTeleportRecord();
|
||||
|
||||
if (ptpRecord.isConfirmRequired()) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.ptp.AcceptAny.Disabled"));
|
||||
} else {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.ptp.AcceptAny.Enabled"));
|
||||
}
|
||||
|
||||
ptpRecord.toggleConfirmRequired();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party.teleport;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.PartyTeleportRecord;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PtpAcceptCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PtpAcceptCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!pluginRef.getPermissionTools().partyTeleportAccept(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
PartyTeleportRecord ptpRecord = pluginRef.getUserManager().getPlayer(player).getPartyTeleportRecord();
|
||||
|
||||
if (!ptpRecord.hasRequest()) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.ptp.NoRequests"));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (pluginRef.getSkillTools().cooldownExpired(ptpRecord.getTimeout(), pluginRef.getConfigManager().getConfigParty().getPTP().getPtpRequestTimeout())) {
|
||||
ptpRecord.removeRequest();
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.ptp.RequestExpired"));
|
||||
return true;
|
||||
}
|
||||
|
||||
Player target = ptpRecord.getRequestor();
|
||||
ptpRecord.removeRequest();
|
||||
|
||||
if (!pluginRef.getPartyManager().canTeleport(sender, player, target.getName())) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (pluginRef.getConfigManager().getConfigParty().getPTP().isPtpWorldBasedPermissions()) {
|
||||
World targetWorld = target.getWorld();
|
||||
World playerWorld = player.getWorld();
|
||||
|
||||
if (!pluginRef.getPermissionTools().partyTeleportAllWorlds(target)) {
|
||||
if (!pluginRef.getPermissionTools().partyTeleportWorld(target, targetWorld)) {
|
||||
target.sendMessage(pluginRef.getLocaleManager().getString("Commands.ptp.NoWorldPermissions", targetWorld.getName()));
|
||||
return true;
|
||||
} else if (targetWorld != playerWorld && !pluginRef.getPermissionTools().partyTeleportWorld(target, playerWorld)) {
|
||||
target.sendMessage(pluginRef.getLocaleManager().getString("Commands.ptp.NoWorldPermissions", playerWorld.getName()));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pluginRef.getPartyManager().handleTeleportWarmup(target, player);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,194 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party.teleport;
|
||||
|
||||
import com.gmail.nossr50.commands.CommandConstants;
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
||||
import com.gmail.nossr50.datatypes.party.PartyTeleportRecord;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class PtpCommand implements TabExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
private CommandExecutor ptpToggleCommand;
|
||||
private CommandExecutor ptpAcceptAnyCommand;
|
||||
private CommandExecutor ptpAcceptCommand;
|
||||
|
||||
public PtpCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
|
||||
//Init SubCommands
|
||||
ptpToggleCommand = new PtpToggleCommand(pluginRef);
|
||||
ptpAcceptAnyCommand = new PtpAcceptAnyCommand(pluginRef);
|
||||
ptpAcceptCommand = new PtpAcceptCommand(pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (pluginRef.getCommandTools().noConsoleUsage(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
|
||||
/* WORLD GUARD MAIN FLAG CHECK */
|
||||
if (pluginRef.getWorldGuardUtils().isWorldGuardLoaded()) {
|
||||
if (!pluginRef.getWorldGuardManager().hasMainFlag(player))
|
||||
return true;
|
||||
}
|
||||
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(player.getWorld().getName()))
|
||||
return true;
|
||||
|
||||
if (!pluginRef.getUserManager().hasPlayerDataKey(player)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
if (!mcMMOPlayer.inParty()) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None"));
|
||||
return true;
|
||||
}
|
||||
|
||||
Party party = mcMMOPlayer.getParty();
|
||||
|
||||
if (party.getLevel() < pluginRef.getPartyManager().getPartyFeatureUnlockLevel(PartyFeature.TELEPORT)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.Feature.Disabled.2"));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length == 1) {
|
||||
if (args[0].equalsIgnoreCase("toggle")) {
|
||||
return ptpToggleCommand.onCommand(sender, command, label, args);
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("acceptany") || args[0].equalsIgnoreCase("acceptall")) {
|
||||
return ptpAcceptAnyCommand.onCommand(sender, command, label, args);
|
||||
}
|
||||
|
||||
long recentlyHurt = mcMMOPlayer.getRecentlyHurt();
|
||||
int hurtCooldown = pluginRef.getConfigManager().getConfigParty().getPTP().getPtpRecentlyHurtCooldown();
|
||||
|
||||
if (hurtCooldown > 0) {
|
||||
int timeRemaining = pluginRef.getSkillTools().calculateTimeLeft(recentlyHurt * pluginRef.getMiscTools().TIME_CONVERSION_FACTOR, hurtCooldown, player);
|
||||
|
||||
if (timeRemaining > 0) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Item.Injured.Wait", timeRemaining));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("accept")) {
|
||||
return ptpAcceptCommand.onCommand(sender, command, label, args);
|
||||
}
|
||||
|
||||
if (!pluginRef.getPermissionTools().partyTeleportSend(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
int ptpCooldown = pluginRef.getConfigManager().getConfigParty().getPTP().getPtpCooldown();
|
||||
long ptpLastUse = mcMMOPlayer.getPartyTeleportRecord().getLastUse();
|
||||
|
||||
if (ptpCooldown > 0) {
|
||||
int timeRemaining = pluginRef.getSkillTools().calculateTimeLeft(ptpLastUse * pluginRef.getMiscTools().TIME_CONVERSION_FACTOR, ptpCooldown, player);
|
||||
|
||||
if (timeRemaining > 0) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Item.Generic.Wait", timeRemaining));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
sendTeleportRequest(sender, player, pluginRef.getCommandTools().getMatchedPlayerName(args[0]));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
List<String> matches = StringUtil.copyPartialMatches(args[0], CommandConstants.TELEPORT_SUBCOMMANDS, new ArrayList<>(CommandConstants.TELEPORT_SUBCOMMANDS.size()));
|
||||
|
||||
if (matches.size() == 0) {
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return ImmutableList.of();
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
if (!mcMMOPlayer.inParty()) {
|
||||
return ImmutableList.of();
|
||||
}
|
||||
|
||||
List<String> playerNames = mcMMOPlayer.getParty().getOnlinePlayerNames(player);
|
||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<>(playerNames.size()));
|
||||
}
|
||||
|
||||
return matches;
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
|
||||
private void sendTeleportRequest(CommandSender sender, Player player, String targetName) {
|
||||
if (!pluginRef.getPartyManager().canTeleport(sender, player, targetName)) {
|
||||
return;
|
||||
}
|
||||
|
||||
BukkitMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetName);
|
||||
Player target = mcMMOTarget.getNative();
|
||||
|
||||
if (pluginRef.getConfigManager().getConfigParty().getPTP().isPtpWorldBasedPermissions()) {
|
||||
World targetWorld = target.getWorld();
|
||||
World playerWorld = player.getWorld();
|
||||
|
||||
if (!pluginRef.getPermissionTools().partyTeleportAllWorlds(player)) {
|
||||
if (!pluginRef.getPermissionTools().partyTeleportWorld(target, targetWorld)) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().formatString("Commands.ptp.NoWorldPermissions", targetWorld.getName()));
|
||||
return;
|
||||
}
|
||||
else if (targetWorld != playerWorld && !pluginRef.getPermissionTools().partyTeleportWorld(player, targetWorld)) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().formatString("Commands.ptp.NoWorldPermissions", targetWorld.getName()));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PartyTeleportRecord ptpRecord = mcMMOTarget.getPartyTeleportRecord();
|
||||
|
||||
if (!ptpRecord.isConfirmRequired()) {
|
||||
pluginRef.getPartyManager().handleTeleportWarmup(player, target);
|
||||
return;
|
||||
}
|
||||
|
||||
ptpRecord.setRequestor(player);
|
||||
ptpRecord.actualizeTimeout();
|
||||
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Invite.Success"));
|
||||
|
||||
target.sendMessage(pluginRef.getLocaleManager().getString("Commands.ptp.Request1", player.getName()));
|
||||
target.sendMessage(pluginRef.getLocaleManager().getString("Commands.ptp.Request2", pluginRef.getConfigManager().getConfigParty().getPTP().getPtpRequestTimeout()));
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party.teleport;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.PartyTeleportRecord;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class PtpToggleCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public PtpToggleCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!pluginRef.getPermissionTools().partyTeleportToggle(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
PartyTeleportRecord ptpRecord = pluginRef.getUserManager().getPlayer(sender.getName()).getPartyTeleportRecord();
|
||||
|
||||
if (ptpRecord.isEnabled()) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.ptp.Disabled"));
|
||||
} else {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.ptp.Enabled"));
|
||||
}
|
||||
|
||||
ptpRecord.toggleEnabled();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
package com.gmail.nossr50.commands.player;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.scoreboards.SidebarType;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class CooldownCommand implements TabExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public CooldownCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (pluginRef.getCommandTools().noConsoleUsage(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!pluginRef.getCommandTools().hasPlayerDataKey(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
Player player = (Player) sender;
|
||||
|
||||
if (pluginRef.getScoreboardSettings().getScoreboardsEnabled() && pluginRef.getScoreboardSettings().isScoreboardEnabled(SidebarType.COOLDOWNS_BOARD)) {
|
||||
pluginRef.getScoreboardManager().enablePlayerCooldownScoreboard(player);
|
||||
|
||||
if (!pluginRef.getScoreboardSettings().isScoreboardPrinting(SidebarType.COOLDOWNS_BOARD)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (pluginRef.getUserManager().getPlayer(player) == null) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Cooldowns.Header"));
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("mcMMO.NoSkillNote"));
|
||||
|
||||
for (SuperAbilityType superAbilityType : SuperAbilityType.values()) {
|
||||
if (!pluginRef.getSkillTools().superAbilityPermissionCheck(superAbilityType, player)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
int seconds = mcMMOPlayer.calculateTimeRemaining(superAbilityType);
|
||||
|
||||
if (seconds <= 0) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Cooldowns.Row.Y", pluginRef.getSkillTools().getPrettySuperAbilityName(superAbilityType)));
|
||||
} else {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Cooldowns.Row.N", pluginRef.getSkillTools().getPrettySuperAbilityName(superAbilityType), seconds));
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
@@ -1,110 +0,0 @@
|
||||
package com.gmail.nossr50.commands.player;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class InspectCommand implements TabExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public InspectCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
|
||||
|
||||
// If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process.
|
||||
if (mcMMOPlayer == null) {
|
||||
PlayerProfile profile = pluginRef.getDatabaseManager().loadPlayerProfile(playerName, false); // Temporary Profile
|
||||
|
||||
if (!pluginRef.getCommandTools().isLoaded(sender, profile)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
if (pluginRef.getScoreboardSettings().getScoreboardsEnabled() && sender instanceof Player
|
||||
&& pluginRef.getScoreboardSettings().getConfigSectionScoreboardTypes().getConfigSectionInspectBoard().isUseThisBoard()) {
|
||||
pluginRef.getScoreboardManager().enablePlayerInspectScoreboard((Player) sender, profile);
|
||||
|
||||
if (!pluginRef.getScoreboardSettings().getConfigSectionScoreboardTypes().getConfigSectionInspectBoard().isPrintToChat()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Inspect.OfflineStats", playerName));
|
||||
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Stats.Header.Gathering"));
|
||||
for (PrimarySkillType skill : pluginRef.getSkillTools().GATHERING_SKILLS) {
|
||||
sender.sendMessage(pluginRef.getCommandTools().displaySkill(profile, skill));
|
||||
}
|
||||
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Stats.Header.Combat"));
|
||||
for (PrimarySkillType skill : pluginRef.getSkillTools().COMBAT_SKILLS) {
|
||||
sender.sendMessage(pluginRef.getCommandTools().displaySkill(profile, skill));
|
||||
}
|
||||
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Stats.Header.Misc"));
|
||||
for (PrimarySkillType skill : pluginRef.getSkillTools().MISC_SKILLS) {
|
||||
sender.sendMessage(pluginRef.getCommandTools().displaySkill(profile, skill));
|
||||
}
|
||||
|
||||
} else {
|
||||
Player target = mcMMOPlayer.getNative();
|
||||
|
||||
if (pluginRef.getCommandTools().hidden(sender, target, pluginRef.getPermissionTools().inspectHidden(sender))) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Inspect.Offline"));
|
||||
return true;
|
||||
}
|
||||
else if (pluginRef.getCommandTools().tooFar(sender, target, pluginRef.getPermissionTools().inspectFar(sender))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (pluginRef.getScoreboardSettings().getScoreboardsEnabled() && sender instanceof Player && pluginRef.getScoreboardSettings().getConfigSectionScoreboardTypes().getConfigSectionInspectBoard().isUseThisBoard()) {
|
||||
pluginRef.getScoreboardManager().enablePlayerInspectScoreboard((Player) sender, mcMMOPlayer.getProfile());
|
||||
|
||||
if (!pluginRef.getScoreboardSettings().getConfigSectionScoreboardTypes().getConfigSectionInspectBoard().isPrintToChat()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Inspect.Stats", target.getName()));
|
||||
pluginRef.getCommandTools().printGatheringSkills(target, sender);
|
||||
pluginRef.getCommandTools().printCombatSkills(target, sender);
|
||||
pluginRef.getCommandTools().printMiscSkills(target, sender);
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.PowerLevel", mcMMOPlayer.getPowerLevel()));
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
List<String> playerNames = pluginRef.getCommandTools().getOnlinePlayerNames(sender);
|
||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<>(playerNames.size()));
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,143 +0,0 @@
|
||||
package com.gmail.nossr50.commands.player;
|
||||
|
||||
import com.gmail.nossr50.core.MetadataConstants;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.runnables.commands.LeaderboardsCommandAsyncTask;
|
||||
import com.gmail.nossr50.util.StringUtils;
|
||||
import com.gmail.nossr50.util.scoreboards.SidebarType;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class LeaderboardCommand implements TabExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public LeaderboardCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
PrimarySkillType skill = null;
|
||||
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
display(1, skill, sender, command);
|
||||
return true;
|
||||
|
||||
case 1:
|
||||
if (StringUtils.isInt(args[0])) {
|
||||
display(Math.abs(Integer.parseInt(args[0])), skill, sender, command);
|
||||
return true;
|
||||
}
|
||||
|
||||
skill = extractSkill(sender, args[0]);
|
||||
|
||||
if (skill == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
display(1, skill, sender, command);
|
||||
return true;
|
||||
|
||||
case 2:
|
||||
if (pluginRef.getCommandTools().isInvalidInteger(sender, args[1])) {
|
||||
return true;
|
||||
}
|
||||
|
||||
skill = extractSkill(sender, args[0]);
|
||||
|
||||
if (skill == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
display(Math.abs(Integer.parseInt(args[1])), skill, sender, command);
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
return StringUtil.copyPartialMatches(args[0], pluginRef.getSkillTools().LOCALIZED_SKILL_NAMES, new ArrayList<>(pluginRef.getSkillTools().LOCALIZED_SKILL_NAMES.size()));
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
|
||||
private void display(int page, PrimarySkillType skill, CommandSender sender, Command command) {
|
||||
if (skill != null && !pluginRef.getPermissionTools().mctop(sender, skill)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
if (sender instanceof Player) {
|
||||
if (!pluginRef.getCommandTools().hasPlayerDataKey(sender)) {
|
||||
return;
|
||||
}
|
||||
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(sender.getName());
|
||||
long cooldownMillis = 5000;
|
||||
|
||||
if (mcMMOPlayer.getDatabaseATS() + cooldownMillis > System.currentTimeMillis()) {
|
||||
double seconds = ((mcMMOPlayer.getDatabaseATS() + cooldownMillis) - System.currentTimeMillis()) / 1000;
|
||||
if (seconds < 1) {
|
||||
seconds = 1;
|
||||
}
|
||||
|
||||
sender.sendMessage(pluginRef.getLocaleManager().formatString(pluginRef.getLocaleManager().getString("Commands.Database.Cooldown"), seconds));
|
||||
return;
|
||||
}
|
||||
|
||||
if (((Player) sender).hasMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY.getKey())) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Database.Processing"));
|
||||
return;
|
||||
} else {
|
||||
((Player) sender).setMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY.getKey(), new FixedMetadataValue((Plugin) pluginRef.getPlatformProvider(), null));
|
||||
}
|
||||
|
||||
mcMMOPlayer.actualizeDatabaseATS();
|
||||
}
|
||||
|
||||
display(page, skill, sender);
|
||||
}
|
||||
|
||||
private void display(int page, PrimarySkillType skill, CommandSender sender) {
|
||||
boolean useBoard = (sender instanceof Player) && (pluginRef.getScoreboardSettings().isScoreboardEnabled(SidebarType.TOP_BOARD));
|
||||
boolean useChat = !useBoard || pluginRef.getScoreboardSettings().isScoreboardPrinting(SidebarType.TOP_BOARD);
|
||||
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setAsync(true)
|
||||
.setTask(new LeaderboardsCommandAsyncTask(pluginRef, page, skill, sender, useBoard, useChat))
|
||||
.schedule();
|
||||
}
|
||||
|
||||
private PrimarySkillType extractSkill(CommandSender sender, String skillName) {
|
||||
if (pluginRef.getCommandTools().isInvalidSkill(sender, skillName)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
PrimarySkillType skill = pluginRef.getSkillTools().matchSkill(skillName);
|
||||
|
||||
if (pluginRef.getCommandTools().isChildSkill(sender, skill)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return skill;
|
||||
}
|
||||
}
|
||||
@@ -1,130 +0,0 @@
|
||||
package com.gmail.nossr50.commands.player;
|
||||
|
||||
import com.gmail.nossr50.core.MetadataConstants;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.runnables.commands.RankCommandAsyncTask;
|
||||
import com.gmail.nossr50.util.scoreboards.SidebarType;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class RankCommand implements TabExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public RankCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
if (pluginRef.getCommandTools().noConsoleUsage(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!pluginRef.getPermissionTools().mcrank(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!pluginRef.getCommandTools().hasPlayerDataKey(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
display(sender, sender.getName());
|
||||
|
||||
return true;
|
||||
|
||||
case 1:
|
||||
if (!pluginRef.getPermissionTools().mcrankOthers(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!pluginRef.getCommandTools().hasPlayerDataKey(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
|
||||
|
||||
if (mcMMOPlayer != null) {
|
||||
Player player = mcMMOPlayer.getNative();
|
||||
playerName = player.getName();
|
||||
|
||||
if (pluginRef.getCommandTools().tooFar(sender, player, pluginRef.getPermissionTools().mcrankFar(sender))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
display(sender, playerName);
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
List<String> playerNames = pluginRef.getCommandTools().getOnlinePlayerNames(sender);
|
||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<>(playerNames.size()));
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
|
||||
private void display(CommandSender sender, String playerName) {
|
||||
if (sender instanceof Player) {
|
||||
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(sender.getName());
|
||||
|
||||
if (mcMMOPlayer == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return;
|
||||
}
|
||||
|
||||
long cooldownMillis = 5000;
|
||||
|
||||
if (mcMMOPlayer.getDatabaseATS() + cooldownMillis > System.currentTimeMillis()) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Database.CooldownMS", getCDSeconds(mcMMOPlayer, cooldownMillis)));
|
||||
return;
|
||||
}
|
||||
|
||||
if (((Player) sender).hasMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY.getKey())) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Database.Processing"));
|
||||
return;
|
||||
} else {
|
||||
((Player) sender).setMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY.getKey(), new FixedMetadataValue((Plugin) pluginRef.getPlatformProvider(), null));
|
||||
}
|
||||
|
||||
mcMMOPlayer.actualizeDatabaseATS();
|
||||
}
|
||||
|
||||
boolean useBoard = pluginRef.getScoreboardSettings().getScoreboardsEnabled() && (sender instanceof Player)
|
||||
&& (pluginRef.getScoreboardSettings().isScoreboardEnabled(SidebarType.RANK_BOARD));
|
||||
boolean useChat = !useBoard || pluginRef.getScoreboardSettings().isScoreboardPrinting(SidebarType.RANK_BOARD);
|
||||
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setAsync(true)
|
||||
.setTask(new RankCommandAsyncTask(pluginRef, playerName, sender, useBoard, useChat))
|
||||
.schedule();
|
||||
}
|
||||
|
||||
private long getCDSeconds(BukkitMMOPlayer mcMMOPlayer, long cooldownMillis) {
|
||||
return ((mcMMOPlayer.getDatabaseATS() + cooldownMillis) - System.currentTimeMillis());
|
||||
}
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
package com.gmail.nossr50.commands.player;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.scoreboards.SidebarType;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class SkillStatsCommand implements TabExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public SkillStatsCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (pluginRef.getCommandTools().noConsoleUsage(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!pluginRef.getCommandTools().hasPlayerDataKey(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
|
||||
if (pluginRef.getScoreboardSettings().isScoreboardEnabled(SidebarType.STATS_BOARD) && pluginRef.getScoreboardSettings().getScoreboardsEnabled()) {
|
||||
pluginRef.getScoreboardManager().enablePlayerStatsScoreboard(player);
|
||||
|
||||
if (!pluginRef.getScoreboardSettings().isScoreboardPrinting(SidebarType.STATS_BOARD)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Stats.Own.Stats"));
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("mcMMO.NoSkillNote"));
|
||||
|
||||
pluginRef.getCommandTools().printGatheringSkills(player);
|
||||
pluginRef.getCommandTools().printCombatSkills(player);
|
||||
pluginRef.getCommandTools().printMiscSkills(player);
|
||||
|
||||
int powerLevelCap = pluginRef.getPlayerLevelingSettings().getConfigSectionLevelCaps().getPowerLevelSettings().getLevelCap();
|
||||
|
||||
if (pluginRef.getPlayerLevelingSettings().getConfigSectionLevelCaps().getPowerLevelSettings().isLevelCapEnabled()) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.PowerLevel.Capped", pluginRef.getUserManager().getPlayer(player).getPowerLevel(), powerLevelCap));
|
||||
} else {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.PowerLevel", pluginRef.getUserManager().getPlayer(player).getPowerLevel()));
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
package com.gmail.nossr50.commands.server;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ReloadPluginCommand implements CommandExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public ReloadPluginCommand(mcMMO plugin) {
|
||||
this.pluginRef = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
if (!pluginRef.getPermissionTools().reload(sender))
|
||||
return false;
|
||||
}
|
||||
|
||||
Bukkit.broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Reload.Start"));
|
||||
pluginRef.reload();
|
||||
Bukkit.broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Reload.Finished"));
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,95 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
|
||||
import com.gmail.nossr50.datatypes.skills.subskills.AbstractSubSkill;
|
||||
import com.gmail.nossr50.listeners.InteractionManager;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.random.RandomChanceSkill;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class AcrobaticsCommand extends SkillCommand {
|
||||
private String dodgeChance;
|
||||
private String dodgeChanceLucky;
|
||||
|
||||
private boolean canDodge;
|
||||
private boolean canRoll;
|
||||
|
||||
public AcrobaticsCommand(mcMMO pluginRef) {
|
||||
super(PrimarySkillType.ACROBATICS, pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// ACROBATICS_DODGE
|
||||
if (canDodge) {
|
||||
String[] dodgeStrings = getAbilityDisplayValues(player, SubSkillType.ACROBATICS_DODGE);
|
||||
dodgeChance = dodgeStrings[0];
|
||||
dodgeChanceLucky = dodgeStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canDodge = canUseSubSkill(player, SubSkillType.ACROBATICS_DODGE);
|
||||
canRoll = canUseSubSkill(player, SubSkillType.ACROBATICS_ROLL);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canDodge) {
|
||||
messages.add(getStatMessage(SubSkillType.ACROBATICS_DODGE, dodgeChance)
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", dodgeChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canRoll) {
|
||||
|
||||
AbstractSubSkill abstractSubSkill = InteractionManager.getAbstractByName("Roll");
|
||||
|
||||
if (abstractSubSkill != null) {
|
||||
double rollChance, graceChance;
|
||||
|
||||
//Chance to roll at half
|
||||
RandomChanceSkill roll_rcs = new RandomChanceSkill(pluginRef, player, SubSkillType.ACROBATICS_ROLL);
|
||||
|
||||
//Chance to graceful roll
|
||||
RandomChanceSkill grace_rcs = new RandomChanceSkill(pluginRef, player, SubSkillType.ACROBATICS_ROLL);
|
||||
grace_rcs.setSkillLevel(grace_rcs.getSkillLevel() * 2); //Double Odds
|
||||
|
||||
//Chance Stat Calculations
|
||||
rollChance = pluginRef.getRandomChanceTools().getRandomChanceExecutionChance(roll_rcs);
|
||||
graceChance = pluginRef.getRandomChanceTools().getRandomChanceExecutionChance(grace_rcs);
|
||||
//damageThreshold = AdvancedConfig.getInstance().getRollDamageThreshold();
|
||||
|
||||
String[] rollStrings = getAbilityDisplayValues(player, SubSkillType.ACROBATICS_ROLL);
|
||||
|
||||
//Format
|
||||
double rollChanceLucky = rollChance * 1.333D;
|
||||
double graceChanceLucky = graceChance * 1.333D;
|
||||
|
||||
messages.add(getStatMessage(SubSkillType.ACROBATICS_ROLL, rollStrings[0])
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", rollStrings[1]) : ""));
|
||||
|
||||
/*messages.add(getStatMessage(true, false, SubSkillType.ACROBATICS_ROLL, String.valueOf(graceChance))
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", String.valueOf(graceChanceLucky)) : ""));*/
|
||||
}
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
pluginRef.getTextComponentFactory().getSubSkillTextComponents(player, textComponents, PrimarySkillType.ACROBATICS);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user