mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2026-02-18 09:43:00 +01:00
Compare commits
1189 Commits
configurab
...
spears
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
31d70a6072 | ||
|
|
7bd4e9afe7 | ||
|
|
ee94189574 | ||
|
|
a907bfd624 | ||
|
|
257292b6cc | ||
|
|
2f452afdc7 | ||
|
|
283c6d9771 | ||
|
|
fc62946e27 | ||
|
|
6b6263d0b3 | ||
|
|
f9acdeaf14 | ||
|
|
5d6b499468 | ||
|
|
03bea40ad4 | ||
|
|
6818d05079 | ||
|
|
401edf0bc9 | ||
|
|
cb164bb013 | ||
|
|
085197abc0 | ||
|
|
98eb706361 | ||
|
|
09dfe4fd11 | ||
|
|
4f01439892 | ||
|
|
1664ca005d | ||
|
|
ced4ed2fd0 | ||
|
|
505352ac70 | ||
|
|
5c283fedb3 | ||
|
|
fae55c1edf | ||
|
|
4052e7e546 | ||
|
|
d800aa9316 | ||
|
|
7ac5cbf915 | ||
|
|
7e479049d0 | ||
|
|
4bbdacd250 | ||
|
|
706adb5942 | ||
|
|
e26bb94b08 | ||
|
|
34f96dc687 | ||
|
|
461d2d4570 | ||
|
|
38396d48b4 | ||
|
|
99bb38ea06 | ||
|
|
43502b255c | ||
|
|
ac9f060e79 | ||
|
|
02ef9fad1d | ||
|
|
1b28ad8f59 | ||
|
|
1b49eb11b8 | ||
|
|
3533c50489 | ||
|
|
2a8be52be5 | ||
|
|
59093c5f22 | ||
|
|
1f123a4eb2 | ||
|
|
c96cb95443 | ||
|
|
9f5994596a | ||
|
|
ec6dce0cb2 | ||
|
|
80a61d2d89 | ||
|
|
f71fe0de70 | ||
|
|
eafa53e5b4 | ||
|
|
5dfea51c5e | ||
|
|
00c0b2e5ec | ||
|
|
c79b3fe024 | ||
|
|
24888d13c2 | ||
|
|
2f624e329d | ||
|
|
07d18e2eba | ||
|
|
c958a86aa3 | ||
|
|
22231dfa32 | ||
|
|
fdc652fd63 | ||
|
|
c07b73d3d6 | ||
|
|
d38d74f82a | ||
|
|
9a59200c0b | ||
|
|
8e049822a3 | ||
|
|
06f979d7bf | ||
|
|
f78586675d | ||
|
|
46bcd29998 | ||
|
|
df69410e67 | ||
|
|
99f7437d9d | ||
|
|
4bfbfa2de7 | ||
|
|
724b66afaa | ||
|
|
6ba4475a77 | ||
|
|
2c1c1fe53f | ||
|
|
ba673a02d0 | ||
|
|
7cf4409c35 | ||
|
|
f9513a8b40 | ||
|
|
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 | ||
|
|
aa65be0e1b | ||
|
|
85f27fdbdb | ||
|
|
5bfca3c218 | ||
|
|
94754b150c | ||
|
|
415e3df226 | ||
|
|
b5608ccb01 | ||
|
|
d57e225576 | ||
|
|
2f166507ca | ||
|
|
347e6112fb | ||
|
|
65dfcb492d | ||
|
|
23a549a6d3 | ||
|
|
a522ab7b2f | ||
|
|
a0923ad786 | ||
|
|
dd04ee48b9 | ||
|
|
89b895af81 | ||
|
|
9e1f5b44a6 | ||
|
|
a54590576f | ||
|
|
06160c6d04 | ||
|
|
12e5a7f054 | ||
|
|
1f20e6344b | ||
|
|
13ba51cdf1 | ||
|
|
4f22391465 | ||
|
|
5f1a545437 | ||
|
|
bad7023129 | ||
|
|
785f18c13a | ||
|
|
357995ecb0 | ||
|
|
3e26eca48e | ||
|
|
dd339c20ea | ||
|
|
c34230a82e | ||
|
|
192626f4da | ||
|
|
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 | ||
|
|
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
|
||||
|
||||
2154
Changelog.txt
2154
Changelog.txt
File diff suppressed because it is too large
Load Diff
43
Jenkinsfile
vendored
Normal file
43
Jenkinsfile
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
pipeline {
|
||||
agent any
|
||||
|
||||
tools {
|
||||
jdk 'jdk17'
|
||||
// If you configured Maven as a Jenkins tool, add:
|
||||
// maven 'Maven3'
|
||||
}
|
||||
|
||||
options {
|
||||
timestamps()
|
||||
disableConcurrentBuilds()
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Checkout') {
|
||||
steps {
|
||||
checkout scm
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build') {
|
||||
steps {
|
||||
sh 'mvn -V -B clean package'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Deploy to Nexus') {
|
||||
steps {
|
||||
configFileProvider([configFile(fileId: 'maven-settings-nexus', variable: 'MAVEN_SETTINGS')]) {
|
||||
sh 'mvn -s "$MAVEN_SETTINGS" -V -B deploy'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
post {
|
||||
success {
|
||||
archiveArtifacts artifacts: 'target/mcMMO.jar', fingerprint: true
|
||||
}
|
||||
}
|
||||
}
|
||||
76
README.md
76
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>put-the-version-here</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://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,78 +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("org.apache.tomcat:tomcat-jdbc:7.0.52")
|
||||
api("com.typesafe:config:1.3.2")
|
||||
api("org.spongepowered:configurate-core:3.7-SNAPSHOT")
|
||||
api("org.spongepowered:configurate-yaml:3.7-SNAPSHOT")
|
||||
api("org.spongepowered:configurate-hocon:3.7-SNAPSHOT")
|
||||
api("co.aikar:acf-core:0.5.0-SNAPSHOT") //Don't change without updating the artifacts for its dependencies (see the other comments)
|
||||
api("co.aikar:acf-paper:0.5.0-SNAPSHOT") //Don't change without updating the artifacts for its dependencies (see the other comments)
|
||||
api("net.kyori:text-api:3.0.2")
|
||||
api("net.kyori:text-serializer-gson:3.0.2")
|
||||
api("net.kyori:text-adapter-bukkit:3.0.4-SNAPSHOT")
|
||||
implementation("org.jetbrains:annotations:17.0.0")
|
||||
implementation("org.apache.maven.scm:maven-scm-provider-gitexe:1.8.1")
|
||||
implementation("org.bstats:bstats-bukkit:1.4")
|
||||
implementation("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,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,105 +0,0 @@
|
||||
package com.gmail.nossr50.chat;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.events.chat.McMMOAdminChatEvent;
|
||||
import com.gmail.nossr50.events.chat.McMMOPartyChatEvent;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
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;
|
||||
|
||||
public ChatManager(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
public void processAdminChat(Player player, String message) {
|
||||
sendAdminChatMessage(new McMMOAdminChatEvent(pluginRef, player.getName(), player.getDisplayName(), message));
|
||||
}
|
||||
|
||||
public void processAdminChat(String senderName, String displayName, String message) {
|
||||
sendAdminChatMessage(new McMMOAdminChatEvent(pluginRef, senderName, displayName, message));
|
||||
}
|
||||
|
||||
public void processPartyChat(Party party, Player sender, String message) {
|
||||
sendPartyChatMessage(new McMMOPartyChatEvent(pluginRef, sender.getName(), sender.getDisplayName(), party, message));
|
||||
}
|
||||
|
||||
public void processPartyChat(Party party, String senderName, String message) {
|
||||
sendPartyChatMessage(new McMMOPartyChatEvent(pluginRef, senderName, senderName, party, message));
|
||||
}
|
||||
|
||||
private void sendAdminChatMessage(McMMOAdminChatEvent event) {
|
||||
pluginRef.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();
|
||||
|
||||
pluginRef.getServer().broadcast(message, ADMIN_CHAT_PERMISSION);
|
||||
}
|
||||
|
||||
private void sendPartyChatMessage(McMMOPartyChatEvent event) {
|
||||
pluginRef.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);
|
||||
}
|
||||
}
|
||||
|
||||
pluginRef.getServer().getConsoleSender().sendMessage(ChatColor.stripColor("[mcMMO] [P]<" + party.getName() + ">" + message));
|
||||
|
||||
/*
|
||||
* Party Chat Spying
|
||||
*/
|
||||
for (McMMOPlayer mcMMOPlayer : pluginRef.getUserManager().getPlayers()) {
|
||||
Player player = mcMMOPlayer.getPlayer();
|
||||
|
||||
//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.McMMOPlayer;
|
||||
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(McMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.getPlayer().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.McMMOPlayer;
|
||||
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:
|
||||
McMMOPlayer 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,124 +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.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(pluginRef.getServer(),
|
||||
pluginRef.getLocaleManager().getString("Commands.Event.Stop"),
|
||||
pluginRef.getLocaleManager().getString("Commands.Event.Stop.Subtitle"),
|
||||
10, 10 * 20, 20);
|
||||
}
|
||||
|
||||
if (pluginRef.getConfigManager().getConfigEvent().isBroadcastXPRateEventMessages()) {
|
||||
pluginRef.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.Stop"));
|
||||
pluginRef.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(pluginRef.getServer(),
|
||||
pluginRef.getLocaleManager().getString("Commands.Event.Start"),
|
||||
pluginRef.getLocaleManager().getString("Commands.Event.XP", newXpRate),
|
||||
10, 10 * 20, 20);
|
||||
}
|
||||
|
||||
if (pluginRef.getConfigManager().getConfigEvent().isBroadcastXPRateEventMessages()) {
|
||||
pluginRef.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.Start"));
|
||||
pluginRef.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.McMMOPlayer;
|
||||
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(McMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.getPlayer().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,118 +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;
|
||||
|
||||
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", pluginRef.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.McMMOPlayer;
|
||||
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(McMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.setRecentlyHurt(0);
|
||||
mcMMOPlayer.resetCooldowns();
|
||||
mcMMOPlayer.resetToolPrepMode();
|
||||
mcMMOPlayer.resetSuperAbilityMode();
|
||||
|
||||
mcMMOPlayer.getPlayer().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.McMMOPlayer;
|
||||
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 (McMMOPlayer 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 (McMMOPlayer 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.McMMOPlayer;
|
||||
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]);
|
||||
McMMOPlayer 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(McMMOPlayer mcMMOPlayer);
|
||||
|
||||
protected abstract void sendSuccessMessage(CommandSender sender, String playerName);
|
||||
}
|
||||
@@ -1,93 +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 set")
|
||||
public void onAddTags(Player player, String[] args) {
|
||||
if(args.length == 0) {
|
||||
player.sendMessage("No arguments provided!");
|
||||
} else if(args.length == 1) {
|
||||
player.sendMessage("Not enough arguments provided!");
|
||||
} else {
|
||||
player.sendMessage("Modifying NBT on item in hand...");
|
||||
String targetTag = args[0];
|
||||
|
||||
//Check for the tag
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Subcommand("tags remove")
|
||||
public void onRemoveTags(Player player, String[] args) {
|
||||
if(args.length == 0) {
|
||||
player.sendMessage("No arguments provided!");
|
||||
} else if(args.length == 1) {
|
||||
player.sendMessage("Not enough arguments provided!");
|
||||
} else {
|
||||
player.sendMessage("Modifying NBT on item in hand...");
|
||||
String targetTag = args[0];
|
||||
|
||||
//Check for the tag
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Subcommand("tags clear")
|
||||
public void onClearTags(Player player) {
|
||||
//Clear all NBT tags that fall under "tag" on the item
|
||||
|
||||
player.sendMessage("Clearing NBT on item...");
|
||||
}
|
||||
}
|
||||
@@ -1,37 +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.McMMOPlayer;
|
||||
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) {
|
||||
McMMOPlayer mcMMOPlayer = plugin.getUserManager().getPlayer((Player) sender);
|
||||
|
||||
if(mcMMOPlayer == null)
|
||||
return;
|
||||
|
||||
mcMMOPlayer.toggleDebugMode(); //Toggle debug mode
|
||||
plugin.getNotificationManager().sendPlayerInformationChatOnlyPrefixed(mcMMOPlayer.getPlayer(), "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.McMMOPlayer;
|
||||
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) {
|
||||
McMMOPlayer 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(McMMOPlayer 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(McMMOPlayer 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.McMMOPlayer;
|
||||
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(McMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.getPlayer().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,93 +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.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 : pluginRef.getServer().getOnlinePlayers()) {
|
||||
PlayerProfile profile = oldDatabase.loadPlayerProfile(player.getUniqueId());
|
||||
|
||||
if (profile.isLoaded()) {
|
||||
pluginRef.getDatabaseManager().saveUser(profile);
|
||||
}
|
||||
|
||||
new PlayerProfileLoadingTask(pluginRef, player).runTaskLaterAsynchronously(pluginRef, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading
|
||||
}
|
||||
|
||||
new DatabaseConversionTask(pluginRef, oldDatabase, sender, previousType.toString(), newType.toString()).runTaskAsynchronously(pluginRef);
|
||||
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,51 +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.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();
|
||||
|
||||
new FormulaConversionTask(pluginRef, sender, previousType).runTaskLater(pluginRef, 1);
|
||||
|
||||
for (Player player : pluginRef.getServer().getOnlinePlayers()) {
|
||||
new PlayerProfileLoadingTask(pluginRef, player).runTaskLaterAsynchronously(pluginRef, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mcconvert.Experience.Invalid"));
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,171 +0,0 @@
|
||||
package com.gmail.nossr50.commands.experience;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
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.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]);
|
||||
McMMOPlayer 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 = pluginRef.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.getPlayer(), 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,176 +0,0 @@
|
||||
package com.gmail.nossr50.commands.experience;
|
||||
|
||||
import com.gmail.nossr50.datatypes.experience.XPGainReason;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
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.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]);
|
||||
McMMOPlayer 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 = pluginRef.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.getPlayer(), 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.McMMOPlayer;
|
||||
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;
|
||||
}
|
||||
|
||||
McMMOPlayer 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,46 +0,0 @@
|
||||
package com.gmail.nossr50.commands.party;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
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 = pluginRef.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.McMMOPlayer;
|
||||
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;
|
||||
}
|
||||
|
||||
McMMOPlayer 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.McMMOPlayer;
|
||||
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;
|
||||
McMMOPlayer 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.McMMOPlayer;
|
||||
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;
|
||||
McMMOPlayer 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, McMMOPlayer 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.McMMOPlayer;
|
||||
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]);
|
||||
McMMOPlayer mcMMOTarget = pluginRef.getUserManager().getOfflinePlayer(targetName);
|
||||
|
||||
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Player target = mcMMOTarget.getPlayer();
|
||||
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
McMMOPlayer 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.McMMOPlayer;
|
||||
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]);
|
||||
McMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetName);
|
||||
|
||||
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
Player target = mcMMOTarget.getPlayer();
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
McMMOPlayer 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,59 +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.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 = pluginRef.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.McMMOPlayer;
|
||||
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;
|
||||
}
|
||||
|
||||
McMMOPlayer 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.McMMOPlayer;
|
||||
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;
|
||||
}
|
||||
|
||||
McMMOPlayer 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.getPlayer();
|
||||
|
||||
// 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.McMMOPlayer;
|
||||
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;
|
||||
McMMOPlayer 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.McMMOPlayer;
|
||||
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;
|
||||
McMMOPlayer 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(McMMOPlayer 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.McMMOPlayer;
|
||||
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;
|
||||
McMMOPlayer 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.McMMOPlayer;
|
||||
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]);
|
||||
McMMOPlayer mcMMOTarget = pluginRef.getUserManager().getOfflinePlayer(targetName);
|
||||
|
||||
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Player target = mcMMOTarget.getPlayer();
|
||||
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
McMMOPlayer 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.McMMOPlayer;
|
||||
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;
|
||||
}
|
||||
|
||||
McMMOPlayer 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;
|
||||
McMMOPlayer 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;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetName);
|
||||
Player target = mcMMOTarget.getPlayer();
|
||||
|
||||
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.McMMOPlayer;
|
||||
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;
|
||||
}
|
||||
|
||||
McMMOPlayer 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.McMMOPlayer;
|
||||
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]);
|
||||
McMMOPlayer 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.getPlayer();
|
||||
|
||||
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,139 +0,0 @@
|
||||
package com.gmail.nossr50.commands.player;
|
||||
|
||||
import com.gmail.nossr50.core.MetadataConstants;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
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.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;
|
||||
}
|
||||
|
||||
McMMOPlayer 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)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Database.Processing"));
|
||||
return;
|
||||
} else {
|
||||
((Player) sender).setMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY, new FixedMetadataValue(pluginRef, 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);
|
||||
|
||||
new LeaderboardsCommandAsyncTask(pluginRef, page, skill, sender, useBoard, useChat).runTaskAsynchronously(pluginRef);
|
||||
}
|
||||
|
||||
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,126 +0,0 @@
|
||||
package com.gmail.nossr50.commands.player;
|
||||
|
||||
import com.gmail.nossr50.core.MetadataConstants;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
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.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]);
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
|
||||
|
||||
if (mcMMOPlayer != null) {
|
||||
Player player = mcMMOPlayer.getPlayer();
|
||||
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) {
|
||||
|
||||
McMMOPlayer 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)) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Database.Processing"));
|
||||
return;
|
||||
} else {
|
||||
((Player) sender).setMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY, new FixedMetadataValue(pluginRef, 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);
|
||||
|
||||
new RankCommandAsyncTask(pluginRef, playerName, sender, useBoard, useChat).runTaskAsynchronously(pluginRef);
|
||||
}
|
||||
|
||||
private long getCDSeconds(McMMOPlayer 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;
|
||||
}
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
//package com.gmail.nossr50.commands.skills;
|
||||
//
|
||||
//import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
//import com.gmail.nossr50.util.TextComponentFactory;
|
||||
//import net.md_5.bungee.api.chat.TextComponent;
|
||||
//import org.bukkit.entity.Player;
|
||||
//
|
||||
//import java.util.ArrayList;
|
||||
//import java.util.List;
|
||||
//
|
||||
//public class AlchemyCommand extends SkillCommand {
|
||||
//// private String brewSpeed;
|
||||
//// private String brewSpeedLucky;
|
||||
////
|
||||
//// private int tier;
|
||||
//// private int ingredientCount;
|
||||
//// private String ingredientList;
|
||||
////
|
||||
//// private boolean canCatalysis;
|
||||
//// private boolean canConcoctions;
|
||||
//
|
||||
// public AlchemyCommand() {
|
||||
// super(PrimarySkillType.ALCHEMY);
|
||||
// }
|
||||
//
|
||||
//// protected String[] calculateAbilityDisplayValues(Player player) {
|
||||
//// //TODO: Needed?
|
||||
//// if (pluginRef.getUserManager().getPlayer(player) == null) {
|
||||
//// player.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
//// return new String[]{"DATA NOT LOADED", "DATA NOT LOADED"};
|
||||
//// }
|
||||
////
|
||||
//// AlchemyManager alchemyManager = pluginRef.getUserManager().getPlayer(player).getAlchemyManager();
|
||||
//// String[] displayValues = new String[2];
|
||||
////
|
||||
//// boolean isLucky = Permissions.lucky(player, PrimarySkillType.ALCHEMY);
|
||||
////
|
||||
//// displayValues[0] = decimal.format(alchemyManager.calculateBrewSpeed(false)) + "x";
|
||||
//// displayValues[1] = isLucky ? decimal.format(alchemyManager.calculateBrewSpeed(true)) + "x" : null;
|
||||
////
|
||||
//// return displayValues;
|
||||
//// }
|
||||
//
|
||||
// @Override
|
||||
// protected void dataCalculations(Player player, double skillValue) {
|
||||
// // ALCHEMY_CATALYSIS
|
||||
//// if (canCatalysis) {
|
||||
//// String[] catalysisStrings = calculateAbilityDisplayValues(player);
|
||||
//// brewSpeed = catalysisStrings[0];
|
||||
//// brewSpeedLucky = catalysisStrings[1];
|
||||
//// }
|
||||
////
|
||||
//// // ALCHEMY_CONCOCTIONS
|
||||
//// if (canConcoctions) {
|
||||
//// AlchemyManager alchemyManager = pluginRef.getUserManager().getPlayer(player).getAlchemyManager();
|
||||
//// tier = alchemyManager.getTier();
|
||||
//// ingredientCount = alchemyManager.getIngredients().size();
|
||||
//// ingredientList = alchemyManager.getIngredientList();
|
||||
//// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// protected void permissionsCheck(Player player) {
|
||||
//// canCatalysis = canUseSubskill(player, SubSkillType.ALCHEMY_CATALYSIS);
|
||||
//// canConcoctions = canUseSubskill(player, SubSkillType.ALCHEMY_CONCOCTIONS);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
// List<String> messages = new ArrayList<>();
|
||||
//
|
||||
//// if (canCatalysis) {
|
||||
//// messages.add(getStatMessage(SubSkillType.ALCHEMY_CATALYSIS, brewSpeed)
|
||||
//// + (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", brewSpeedLucky) : ""));
|
||||
//// }
|
||||
////
|
||||
//// if (canConcoctions) {
|
||||
//// messages.add(getStatMessage(false, true, SubSkillType.ALCHEMY_CONCOCTIONS, String.valueOf(tier), String.valueOf(RankUtils.getHighestRank(SubSkillType.ALCHEMY_CONCOCTIONS))));
|
||||
//// messages.add(getStatMessage(true, true, SubSkillType.ALCHEMY_CONCOCTIONS, String.valueOf(ingredientCount), ingredientList));
|
||||
////
|
||||
//// //messages.add(pluginRef.getLocaleManager().getString("Alchemy.Concoctions.Rank", tier, RankUtils.getHighestRank(SubSkillType.ALCHEMY_CONCOCTIONS)));
|
||||
//// //messages.add(pluginRef.getLocaleManager().getString("Alchemy.Concoctions.Ingredients", ingredientCount, ingredientList));
|
||||
//// }
|
||||
//
|
||||
// return messages;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// protected List<TextComponent> getTextComponents(Player player) {
|
||||
// List<TextComponent> textComponents = new ArrayList<>();
|
||||
//
|
||||
// pluginRef.getTextComponentFactory().getSubSkillTextComponents(player, textComponents, PrimarySkillType.ALCHEMY);
|
||||
//
|
||||
// return textComponents;
|
||||
// }
|
||||
//}
|
||||
@@ -1,90 +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.mcMMO;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ArcheryCommand extends SkillCommand {
|
||||
private String skillShotBonus;
|
||||
private String dazeChance;
|
||||
private String dazeChanceLucky;
|
||||
private String retrieveChance;
|
||||
private String retrieveChanceLucky;
|
||||
|
||||
private boolean canSkillShot;
|
||||
private boolean canDaze;
|
||||
private boolean canRetrieve;
|
||||
|
||||
public ArcheryCommand(mcMMO pluginRef) {
|
||||
super(PrimarySkillType.ARCHERY, pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// ARCHERY_ARROW_RETRIEVAL
|
||||
if (canRetrieve) {
|
||||
String[] retrieveStrings = getAbilityDisplayValues(player, SubSkillType.ARCHERY_ARROW_RETRIEVAL);
|
||||
retrieveChance = retrieveStrings[0];
|
||||
retrieveChanceLucky = retrieveStrings[1];
|
||||
}
|
||||
|
||||
// ARCHERY_DAZE
|
||||
if (canDaze) {
|
||||
String[] dazeStrings = getAbilityDisplayValues(player, SubSkillType.ARCHERY_DAZE);
|
||||
dazeChance = dazeStrings[0];
|
||||
dazeChanceLucky = dazeStrings[1];
|
||||
}
|
||||
|
||||
// SKILL SHOT
|
||||
if (canSkillShot) {
|
||||
skillShotBonus = percent.format(pluginRef.getDynamicSettingsManager().getSkillBehaviourManager().getArcheryBehaviour().getSkillShotDamageBonusPercent(player));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canSkillShot = canUseSubSkill(player, SubSkillType.ARCHERY_SKILL_SHOT);
|
||||
canDaze = canUseSubSkill(player, SubSkillType.ARCHERY_DAZE);
|
||||
canRetrieve = canUseSubSkill(player, SubSkillType.ARCHERY_ARROW_RETRIEVAL);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canRetrieve) {
|
||||
messages.add(getStatMessage(SubSkillType.ARCHERY_ARROW_RETRIEVAL, retrieveChance)
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", retrieveChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canDaze) {
|
||||
messages.add(getStatMessage(SubSkillType.ARCHERY_DAZE, dazeChance)
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", dazeChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canSkillShot) {
|
||||
messages.add(getStatMessage(SubSkillType.ARCHERY_SKILL_SHOT, skillShotBonus));
|
||||
}
|
||||
|
||||
if (canUseSubSkill(player, SubSkillType.ARCHERY_ARCHERY_LIMIT_BREAK)) {
|
||||
messages.add(getStatMessage(SubSkillType.ARCHERY_ARCHERY_LIMIT_BREAK,
|
||||
String.valueOf(pluginRef.getCombatTools().getLimitBreakDamageAgainstQuality(player, SubSkillType.ARCHERY_ARCHERY_LIMIT_BREAK, 1000))));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
pluginRef.getTextComponentFactory().getSubSkillTextComponents(player, textComponents, PrimarySkillType.ARCHERY);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,108 +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.mcMMO;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class AxesCommand extends SkillCommand {
|
||||
private String critChance;
|
||||
private String critChanceLucky;
|
||||
private double axeMasteryDamage;
|
||||
private double impactDamage;
|
||||
private String skullSplitterLength;
|
||||
private String skullSplitterLengthEndurance;
|
||||
|
||||
private boolean canSkullSplitter;
|
||||
private boolean canCritical;
|
||||
private boolean canAxeMastery;
|
||||
private boolean canImpact;
|
||||
private boolean canGreaterImpact;
|
||||
|
||||
public AxesCommand(mcMMO pluginRef) {
|
||||
super(PrimarySkillType.AXES, pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// ARMOR IMPACT
|
||||
if (canImpact) {
|
||||
impactDamage = pluginRef.getUserManager().getPlayer(player).getAxesManager().getImpactDurabilityDamage();
|
||||
}
|
||||
|
||||
// AXE MASTERY
|
||||
if (canAxeMastery) {
|
||||
axeMasteryDamage = pluginRef.getDynamicSettingsManager().getSkillBehaviourManager().getAxesBehaviour().getAxeMasteryBonusDamage(player);
|
||||
}
|
||||
|
||||
// CRITICAL HIT
|
||||
if (canCritical) {
|
||||
String[] criticalHitStrings = getAbilityDisplayValues(player, SubSkillType.AXES_CRITICAL_STRIKES);
|
||||
critChance = criticalHitStrings[0];
|
||||
critChanceLucky = criticalHitStrings[1];
|
||||
}
|
||||
|
||||
// SKULL SPLITTER
|
||||
if (canSkullSplitter) {
|
||||
String[] skullSplitterStrings = formatLengthDisplayValues(player, skillValue);
|
||||
skullSplitterLength = skullSplitterStrings[0];
|
||||
skullSplitterLengthEndurance = skullSplitterStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canSkullSplitter = pluginRef.getPermissionTools().skullSplitter(player) && pluginRef.getRankTools().hasUnlockedSubskill(player, SubSkillType.AXES_SKULL_SPLITTER);
|
||||
canCritical = canUseSubSkill(player, SubSkillType.AXES_CRITICAL_STRIKES);
|
||||
canAxeMastery = canUseSubSkill(player, SubSkillType.AXES_AXE_MASTERY);
|
||||
canImpact = canUseSubSkill(player, SubSkillType.AXES_ARMOR_IMPACT);
|
||||
canGreaterImpact = canUseSubSkill(player, SubSkillType.AXES_GREATER_IMPACT);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canImpact) {
|
||||
messages.add(pluginRef.getLocaleManager().getString("Ability.Generic.Template", pluginRef.getLocaleManager().getString("Axes.Ability.Bonus.2"), pluginRef.getLocaleManager().getString("Axes.Ability.Bonus.3", impactDamage)));
|
||||
}
|
||||
|
||||
if (canAxeMastery) {
|
||||
messages.add(pluginRef.getLocaleManager().getString("Ability.Generic.Template", pluginRef.getLocaleManager().getString("Axes.Ability.Bonus.0"), pluginRef.getLocaleManager().getString("Axes.Ability.Bonus.1", axeMasteryDamage)));
|
||||
}
|
||||
|
||||
if (canCritical) {
|
||||
messages.add(getStatMessage(SubSkillType.AXES_CRITICAL_STRIKES, critChance)
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", critChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canGreaterImpact) {
|
||||
messages.add(pluginRef.getLocaleManager().getString("Ability.Generic.Template", pluginRef.getLocaleManager().getString("Axes.Ability.Bonus.4"), pluginRef.getLocaleManager().getString("Axes.Ability.Bonus.5", pluginRef.getConfigManager().getConfigAxes().getGreaterImpactBonusDamage())));
|
||||
}
|
||||
|
||||
if (canSkullSplitter) {
|
||||
messages.add(getStatMessage(SubSkillType.AXES_SKULL_SPLITTER, skullSplitterLength)
|
||||
+ (hasEndurance ? pluginRef.getLocaleManager().getString("Perks.ActivationTime.Bonus", skullSplitterLengthEndurance) : ""));
|
||||
}
|
||||
|
||||
if (canUseSubSkill(player, SubSkillType.AXES_AXES_LIMIT_BREAK)) {
|
||||
messages.add(getStatMessage(SubSkillType.AXES_AXES_LIMIT_BREAK,
|
||||
String.valueOf(pluginRef.getCombatTools().getLimitBreakDamageAgainstQuality(player, SubSkillType.AXES_AXES_LIMIT_BREAK, 1000))));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
pluginRef.getTextComponentFactory().getSubSkillTextComponents(player, textComponents, PrimarySkillType.AXES);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,72 +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.mcMMO;
|
||||
import com.gmail.nossr50.skills.excavation.ExcavationManager;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ExcavationCommand extends SkillCommand {
|
||||
private String gigaDrillBreakerLength;
|
||||
private String gigaDrillBreakerLengthEndurance;
|
||||
|
||||
private boolean canGigaDrill;
|
||||
private boolean canTreasureHunt;
|
||||
|
||||
public ExcavationCommand(mcMMO pluginRef) {
|
||||
super(PrimarySkillType.EXCAVATION, pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// GIGA DRILL BREAKER
|
||||
if (canGigaDrill) {
|
||||
String[] gigaDrillStrings = formatLengthDisplayValues(player, skillValue);
|
||||
gigaDrillBreakerLength = gigaDrillStrings[0];
|
||||
gigaDrillBreakerLengthEndurance = gigaDrillStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canGigaDrill = pluginRef.getPermissionTools().gigaDrillBreaker(player) && pluginRef.getRankTools().hasUnlockedSubskill(player, SubSkillType.EXCAVATION_GIGA_DRILL_BREAKER);
|
||||
canTreasureHunt = canUseSubSkill(player, SubSkillType.EXCAVATION_ARCHAEOLOGY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
ExcavationManager excavationManager = pluginRef.getUserManager().getPlayer(player).getExcavationManager();
|
||||
|
||||
if (canGigaDrill) {
|
||||
messages.add(getStatMessage(SubSkillType.EXCAVATION_GIGA_DRILL_BREAKER, gigaDrillBreakerLength)
|
||||
+ (hasEndurance ? pluginRef.getLocaleManager().getString("Perks.ActivationTime.Bonus", gigaDrillBreakerLengthEndurance) : ""));
|
||||
|
||||
//messages.add(pluginRef.getLocaleManager().getString("Excavation.Effect.Length", gigaDrillBreakerLength) + (hasEndurance ? pluginRef.getLocaleManager().getString("Perks.ActivationTime.Bonus", gigaDrillBreakerLengthEndurance) : ""));
|
||||
}
|
||||
|
||||
if(canUseSubSkill(player, SubSkillType.EXCAVATION_ARCHAEOLOGY)) {
|
||||
messages.add(getStatMessage(false, false, SubSkillType.EXCAVATION_ARCHAEOLOGY,
|
||||
percent.format(excavationManager.getArchaelogyExperienceOrbChance() / 100.0D)));
|
||||
messages.add(getStatMessage(true, false, SubSkillType.EXCAVATION_ARCHAEOLOGY,
|
||||
String.valueOf(excavationManager.getExperienceOrbsReward())));
|
||||
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
pluginRef.getTextComponentFactory().getSubSkillTextComponents(player, textComponents, PrimarySkillType.EXCAVATION);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,177 +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.mcMMO;
|
||||
import com.gmail.nossr50.skills.fishing.FishingManager;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class FishingCommand extends SkillCommand {
|
||||
private int lootTier;
|
||||
private String shakeChance;
|
||||
private String shakeChanceLucky;
|
||||
private int fishermansDietRank;
|
||||
private String biteChance;
|
||||
private String innerPeaceMult;
|
||||
|
||||
private String commonTreasure;
|
||||
private String uncommonTreasure;
|
||||
private String rareTreasure;
|
||||
private String epicTreasure;
|
||||
private String legendaryTreasure;
|
||||
private String recordTreasure;
|
||||
|
||||
private String magicChance;
|
||||
|
||||
private boolean canTreasureHunt;
|
||||
private boolean canMagicHunt;
|
||||
private boolean canShake;
|
||||
private boolean canFishermansDiet;
|
||||
private boolean canMasterAngler;
|
||||
private boolean canIceFish;
|
||||
private boolean canInnerPeace;
|
||||
|
||||
public FishingCommand(mcMMO pluginRef) {
|
||||
super(PrimarySkillType.FISHING, pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
FishingManager fishingManager = pluginRef.getUserManager().getPlayer(player).getFishingManager();
|
||||
|
||||
// TREASURE HUNTER
|
||||
if (canTreasureHunt) {
|
||||
lootTier = fishingManager.getLootTier();
|
||||
|
||||
// Item drop rates
|
||||
// commonTreasure = percent.format(FishingTreasureConfig.getInstance().getItemDropRate(lootTier, Rarity.COMMON) / 100.0);
|
||||
// uncommonTreasure = percent.format(FishingTreasureConfig.getInstance().getItemDropRate(lootTier, Rarity.UNCOMMON) / 100.0);
|
||||
// rareTreasure = percent.format(FishingTreasureConfig.getInstance().getItemDropRate(lootTier, Rarity.RARE) / 100.0);
|
||||
// epicTreasure = percent.format(FishingTreasureConfig.getInstance().getItemDropRate(lootTier, Rarity.EPIC) / 100.0);
|
||||
// legendaryTreasure = percent.format(FishingTreasureConfig.getInstance().getItemDropRate(lootTier, Rarity.LEGENDARY) / 100.0);
|
||||
// recordTreasure = percent.format(FishingTreasureConfig.getInstance().getItemDropRate(lootTier, Rarity.RECORD) / 100.0);
|
||||
//
|
||||
// // Magic hunter drop rates
|
||||
// double totalEnchantChance = 0;
|
||||
//
|
||||
// for (Rarity rarity : Rarity.values()) {
|
||||
// if (rarity != Rarity.RECORD) {
|
||||
// totalEnchantChance += FishingTreasureConfig.getInstance().getEnchantmentDropRate(lootTier, rarity);
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (totalEnchantChance >= 1)
|
||||
// magicChance = percent.format(totalEnchantChance / 100.0);
|
||||
// else
|
||||
// magicChance = percent.format(0);
|
||||
}
|
||||
|
||||
// FISHING_SHAKE
|
||||
// if (canShake) {
|
||||
// String[] shakeStrings = pluginRef.getRandomChanceTools().calculateAbilityDisplayValuesStatic(player, PrimarySkillType.FISHING, fishingManager.getShakeChance());
|
||||
// shakeChance = shakeStrings[0];
|
||||
// shakeChanceLucky = shakeStrings[1];
|
||||
// }
|
||||
|
||||
// FISHERMAN'S DIET
|
||||
if (canFishermansDiet) {
|
||||
fishermansDietRank = pluginRef.getRankTools().getRank(player, SubSkillType.FISHING_FISHERMANS_DIET);
|
||||
}
|
||||
|
||||
// MASTER ANGLER
|
||||
if (canMasterAngler) {
|
||||
double rawBiteChance = 1.0 / (player.getWorld().hasStorm() ? 300 : 500);
|
||||
|
||||
Location location = fishingManager.getHookLocation();
|
||||
|
||||
if (location == null) {
|
||||
location = player.getLocation();
|
||||
}
|
||||
|
||||
// if (Fishing.getInstance().getMasterAnglerBiomes().contains(location.getBlock().getBiome())) {
|
||||
// rawBiteChance = rawBiteChance * AdvancedConfig.getInstance().getMasterAnglerBiomeModifier();
|
||||
// }
|
||||
|
||||
// if (player.isInsideVehicle() && player.getVehicle().getType() == EntityType.BOAT) {
|
||||
// rawBiteChance = rawBiteChance * AdvancedConfig.getInstance().getMasterAnglerBoatModifier();
|
||||
// }
|
||||
|
||||
double luckyModifier = pluginRef.getPermissionTools().lucky(player, PrimarySkillType.FISHING) ? 1.333D : 1.0D;
|
||||
|
||||
biteChance = percent.format((rawBiteChance * 100.0D) * luckyModifier);
|
||||
}
|
||||
|
||||
if (canInnerPeace) {
|
||||
innerPeaceMult = String.valueOf(fishingManager.getInnerPeaceMultiplier());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canTreasureHunt = canUseSubSkill(player, SubSkillType.FISHING_TREASURE_HUNTER);
|
||||
canMagicHunt = canUseSubSkill(player, SubSkillType.FISHING_MAGIC_HUNTER) && canUseSubSkill(player, SubSkillType.FISHING_TREASURE_HUNTER);
|
||||
canShake = canUseSubSkill(player, SubSkillType.FISHING_SHAKE);
|
||||
canFishermansDiet = canUseSubSkill(player, SubSkillType.FISHING_FISHERMANS_DIET);
|
||||
canMasterAngler = canUseSubSkill(player, SubSkillType.FISHING_MASTER_ANGLER);
|
||||
canIceFish = canUseSubSkill(player, SubSkillType.FISHING_ICE_FISHING);
|
||||
canInnerPeace = canUseSubSkill(player, SubSkillType.FISHING_INNER_PEACE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canFishermansDiet) {
|
||||
messages.add(getStatMessage(false, true, SubSkillType.FISHING_FISHERMANS_DIET, String.valueOf(fishermansDietRank)));
|
||||
}
|
||||
|
||||
// if (canIceFish) {
|
||||
// messages.add(getStatMessage(SubSkillType.FISHING_ICE_FISHING, SubSkillType.FISHING_ICE_FISHING.getLocaleStatDescription()));
|
||||
// }
|
||||
|
||||
if (canMagicHunt) {
|
||||
messages.add(getStatMessage(SubSkillType.FISHING_MAGIC_HUNTER, magicChance));
|
||||
}
|
||||
|
||||
if (canMasterAngler) {
|
||||
//TODO: Update this with more details
|
||||
messages.add(getStatMessage(false, true, SubSkillType.FISHING_MASTER_ANGLER, biteChance));
|
||||
}
|
||||
|
||||
if (canShake) {
|
||||
messages.add(getStatMessage(SubSkillType.FISHING_SHAKE, shakeChance)
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", shakeChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canTreasureHunt) {
|
||||
messages.add(getStatMessage(false, true, SubSkillType.FISHING_TREASURE_HUNTER, String.valueOf(lootTier), String.valueOf(pluginRef.getRankTools().getHighestRank(SubSkillType.FISHING_TREASURE_HUNTER))));
|
||||
messages.add(getStatMessage(true, true, SubSkillType.FISHING_TREASURE_HUNTER,
|
||||
String.valueOf(commonTreasure),
|
||||
String.valueOf(uncommonTreasure),
|
||||
String.valueOf(rareTreasure),
|
||||
String.valueOf(epicTreasure),
|
||||
String.valueOf(legendaryTreasure),
|
||||
String.valueOf(recordTreasure)));
|
||||
}
|
||||
|
||||
if (canInnerPeace) {
|
||||
messages.add(getStatMessage(SubSkillType.FISHING_INNER_PEACE, innerPeaceMult));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
pluginRef.getTextComponentFactory().getSubSkillTextComponents(player, textComponents, PrimarySkillType.FISHING);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,147 +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.mcMMO;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class HerbalismCommand extends SkillCommand {
|
||||
private String greenTerraLength;
|
||||
private String greenTerraLengthEndurance;
|
||||
private String greenThumbChance;
|
||||
private String greenThumbChanceLucky;
|
||||
private int greenThumbStage;
|
||||
private int farmersDietRank;
|
||||
private String doubleDropChance;
|
||||
private String doubleDropChanceLucky;
|
||||
private String hylianLuckChance;
|
||||
private String hylianLuckChanceLucky;
|
||||
private String shroomThumbChance;
|
||||
private String shroomThumbChanceLucky;
|
||||
|
||||
private boolean hasHylianLuck;
|
||||
private boolean canGreenTerra;
|
||||
private boolean canGreenThumbPlants;
|
||||
private boolean canGreenThumbBlocks;
|
||||
private boolean canFarmersDiet;
|
||||
private boolean canDoubleDrop;
|
||||
private boolean canShroomThumb;
|
||||
|
||||
public HerbalismCommand(mcMMO pluginRef) {
|
||||
super(PrimarySkillType.HERBALISM, pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
|
||||
// DOUBLE DROPS
|
||||
if (canDoubleDrop) {
|
||||
String[] doubleDropStrings = getAbilityDisplayValues(player, SubSkillType.HERBALISM_DOUBLE_DROPS);
|
||||
doubleDropChance = doubleDropStrings[0];
|
||||
doubleDropChanceLucky = doubleDropStrings[1];
|
||||
}
|
||||
|
||||
// FARMERS DIET
|
||||
if (canFarmersDiet) {
|
||||
farmersDietRank = pluginRef.getRankTools().getRank(player, SubSkillType.HERBALISM_FARMERS_DIET);
|
||||
}
|
||||
|
||||
// GREEN TERRA
|
||||
if (canGreenTerra) {
|
||||
String[] greenTerraStrings = formatLengthDisplayValues(player, skillValue);
|
||||
greenTerraLength = greenTerraStrings[0];
|
||||
greenTerraLengthEndurance = greenTerraStrings[1];
|
||||
}
|
||||
|
||||
// GREEN THUMB
|
||||
if (canGreenThumbBlocks || canGreenThumbPlants) {
|
||||
greenThumbStage = pluginRef.getRankTools().getRank(player, SubSkillType.HERBALISM_GREEN_THUMB);
|
||||
|
||||
String[] greenThumbStrings = getAbilityDisplayValues(player, SubSkillType.HERBALISM_GREEN_THUMB);
|
||||
greenThumbChance = greenThumbStrings[0];
|
||||
greenThumbChanceLucky = greenThumbStrings[1];
|
||||
}
|
||||
|
||||
// HYLIAN LUCK
|
||||
if (hasHylianLuck) {
|
||||
String[] hylianLuckStrings = getAbilityDisplayValues(player, SubSkillType.HERBALISM_HYLIAN_LUCK);
|
||||
hylianLuckChance = hylianLuckStrings[0];
|
||||
hylianLuckChanceLucky = hylianLuckStrings[1];
|
||||
}
|
||||
|
||||
// SHROOM THUMB
|
||||
if (canShroomThumb) {
|
||||
String[] shroomThumbStrings = getAbilityDisplayValues(player, SubSkillType.HERBALISM_SHROOM_THUMB);
|
||||
shroomThumbChance = shroomThumbStrings[0];
|
||||
shroomThumbChanceLucky = shroomThumbStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
hasHylianLuck = canUseSubSkill(player, SubSkillType.HERBALISM_HYLIAN_LUCK);
|
||||
canGreenTerra = pluginRef.getPermissionTools().greenTerra(player);
|
||||
canGreenThumbPlants = pluginRef.getRankTools().hasUnlockedSubskill(player, SubSkillType.HERBALISM_GREEN_THUMB) && (pluginRef.getPermissionTools().greenThumbPlant(player, Material.WHEAT) || pluginRef.getPermissionTools().greenThumbPlant(player, Material.CARROT) || pluginRef.getPermissionTools().greenThumbPlant(player, Material.POTATO) || pluginRef.getPermissionTools().greenThumbPlant(player, Material.BEETROOT) || pluginRef.getPermissionTools().greenThumbPlant(player, Material.NETHER_WART) || pluginRef.getPermissionTools().greenThumbPlant(player, Material.COCOA));
|
||||
canGreenThumbBlocks = pluginRef.getRankTools().hasUnlockedSubskill(player, SubSkillType.HERBALISM_GREEN_THUMB) && (pluginRef.getPermissionTools().greenThumbBlock(player, Material.DIRT) || pluginRef.getPermissionTools().greenThumbBlock(player, Material.COBBLESTONE) || pluginRef.getPermissionTools().greenThumbBlock(player, Material.COBBLESTONE_WALL) || pluginRef.getPermissionTools().greenThumbBlock(player, Material.STONE_BRICKS));
|
||||
canFarmersDiet = canUseSubSkill(player, SubSkillType.HERBALISM_FARMERS_DIET);
|
||||
canDoubleDrop = canUseSubSkill(player, SubSkillType.HERBALISM_DOUBLE_DROPS);
|
||||
canShroomThumb = canUseSubSkill(player, SubSkillType.HERBALISM_SHROOM_THUMB);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canDoubleDrop) {
|
||||
messages.add(getStatMessage(SubSkillType.HERBALISM_DOUBLE_DROPS, doubleDropChance)
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", doubleDropChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canFarmersDiet) {
|
||||
messages.add(getStatMessage(false, true, SubSkillType.HERBALISM_FARMERS_DIET, String.valueOf(farmersDietRank)));
|
||||
}
|
||||
|
||||
if (canGreenTerra) {
|
||||
messages.add(getStatMessage(SubSkillType.HERBALISM_GREEN_TERRA, greenTerraLength)
|
||||
+ (hasEndurance ? pluginRef.getLocaleManager().getString("Perks.ActivationTime.Bonus", greenTerraLengthEndurance) : ""));
|
||||
|
||||
//messages.add(pluginRef.getLocaleManager().getString("Herbalism.Ability.GTe.Length", greenTerraLength) + (hasEndurance ? pluginRef.getLocaleManager().getString("Perks.ActivationTime.Bonus", greenTerraLengthEndurance) : ""));
|
||||
}
|
||||
|
||||
if (canGreenThumbBlocks || canGreenThumbPlants) {
|
||||
messages.add(getStatMessage(SubSkillType.HERBALISM_GREEN_THUMB, greenThumbChance)
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", greenThumbChanceLucky) : ""));
|
||||
//messages.add(pluginRef.getLocaleManager().getString("Herbalism.Ability.GTh.Chance", greenThumbChance) + (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", greenThumbChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canGreenThumbPlants) {
|
||||
messages.add(getStatMessage(true, true, SubSkillType.HERBALISM_GREEN_THUMB, String.valueOf(greenThumbStage)));
|
||||
}
|
||||
|
||||
if (hasHylianLuck) {
|
||||
messages.add(getStatMessage(SubSkillType.HERBALISM_HYLIAN_LUCK, hylianLuckChance)
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", hylianLuckChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canShroomThumb) {
|
||||
messages.add(getStatMessage(SubSkillType.HERBALISM_SHROOM_THUMB, shroomThumbChance)
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", shroomThumbChanceLucky) : ""));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
pluginRef.getTextComponentFactory().getSubSkillTextComponents(player, textComponents, PrimarySkillType.HERBALISM);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,115 +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.mcMMO;
|
||||
import com.gmail.nossr50.skills.mining.MiningManager;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class MiningCommand extends SkillCommand {
|
||||
private String doubleDropChance;
|
||||
private String doubleDropChanceLucky;
|
||||
private String superBreakerLength;
|
||||
private String superBreakerLengthEndurance;
|
||||
|
||||
private int blastMiningRank;
|
||||
private int bonusTNTDrops;
|
||||
private double blastRadiusIncrease;
|
||||
private String oreBonus;
|
||||
// private String debrisReduction;
|
||||
private String blastDamageDecrease;
|
||||
|
||||
private boolean canSuperBreaker;
|
||||
private boolean canDoubleDrop;
|
||||
private boolean canBlast;
|
||||
private boolean canBiggerBombs;
|
||||
private boolean canDemoExpert;
|
||||
|
||||
public MiningCommand(mcMMO pluginRef) {
|
||||
super(PrimarySkillType.MINING, pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// BLAST MINING
|
||||
if (canBlast || canDemoExpert || canBiggerBombs) {
|
||||
MiningManager miningManager = pluginRef.getUserManager().getPlayer(player).getMiningManager();
|
||||
|
||||
blastMiningRank = miningManager.getBlastMiningTier();
|
||||
bonusTNTDrops = miningManager.getDropMultiplier();
|
||||
oreBonus = percent.format(miningManager.getOreBonus() / 30.0D); // Base received in TNT is 30%
|
||||
// debrisReduction = percent.format(miningManager.getDebrisReduction() / 30.0D); // Base received in TNT is 30%
|
||||
blastDamageDecrease = percent.format(miningManager.getBlastDamageModifier() / 100.0D);
|
||||
blastRadiusIncrease = miningManager.getBlastRadiusModifier();
|
||||
}
|
||||
|
||||
// DOUBLE DROPS
|
||||
if (canDoubleDrop) {
|
||||
String[] doubleDropStrings = getAbilityDisplayValues(player, SubSkillType.MINING_DOUBLE_DROPS);
|
||||
doubleDropChance = doubleDropStrings[0];
|
||||
doubleDropChanceLucky = doubleDropStrings[1];
|
||||
}
|
||||
|
||||
// SUPER BREAKER
|
||||
if (canSuperBreaker) {
|
||||
String[] superBreakerStrings = formatLengthDisplayValues(player, skillValue);
|
||||
superBreakerLength = superBreakerStrings[0];
|
||||
superBreakerLengthEndurance = superBreakerStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canBiggerBombs = pluginRef.getRankTools().hasUnlockedSubskill(player, SubSkillType.MINING_BIGGER_BOMBS) && pluginRef.getPermissionTools().biggerBombs(player);
|
||||
canBlast = pluginRef.getRankTools().hasUnlockedSubskill(player, SubSkillType.MINING_BLAST_MINING) && pluginRef.getPermissionTools().remoteDetonation(player);
|
||||
canDemoExpert = pluginRef.getRankTools().hasUnlockedSubskill(player, SubSkillType.MINING_DEMOLITIONS_EXPERTISE) && pluginRef.getPermissionTools().demolitionsExpertise(player);
|
||||
canDoubleDrop = canUseSubSkill(player, SubSkillType.MINING_DOUBLE_DROPS);
|
||||
canSuperBreaker = pluginRef.getRankTools().hasUnlockedSubskill(player, SubSkillType.MINING_SUPER_BREAKER) && pluginRef.getPermissionTools().superBreaker(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canBiggerBombs) {
|
||||
messages.add(getStatMessage(true, true, SubSkillType.MINING_BLAST_MINING, String.valueOf(blastRadiusIncrease)));
|
||||
//messages.add(pluginRef.getLocaleManager().getString("SuperAbility.BlastMining.Radius.Increase", blastRadiusIncrease));
|
||||
}
|
||||
|
||||
if (canBlast) {
|
||||
messages.add(getStatMessage(false, true, SubSkillType.MINING_BLAST_MINING, String.valueOf(blastMiningRank), String.valueOf(pluginRef.getRankTools().getHighestRank(SubSkillType.MINING_BLAST_MINING)), pluginRef.getLocaleManager().getString("SuperAbility.BlastMining.Effect", oreBonus, bonusTNTDrops)));
|
||||
}
|
||||
|
||||
if (canDemoExpert) {
|
||||
messages.add(getStatMessage(SubSkillType.MINING_DEMOLITIONS_EXPERTISE, blastDamageDecrease));
|
||||
//messages.add(pluginRef.getLocaleManager().getString("Mining.Effect.Decrease", blastDamageDecrease));
|
||||
}
|
||||
|
||||
if (canDoubleDrop) {
|
||||
messages.add(getStatMessage(SubSkillType.MINING_DOUBLE_DROPS, doubleDropChance)
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", doubleDropChanceLucky) : ""));
|
||||
//messages.add(pluginRef.getLocaleManager().getString("Mining.Effect.DropChance", doubleDropChance) + (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", doubleDropChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canSuperBreaker) {
|
||||
messages.add(getStatMessage(SubSkillType.MINING_SUPER_BREAKER, superBreakerLength)
|
||||
+ (hasEndurance ? pluginRef.getLocaleManager().getString("Perks.ActivationTime.Bonus", superBreakerLengthEndurance) : ""));
|
||||
//messages.add(pluginRef.getLocaleManager().getString("Mining.Ability.Length", superBreakerLength) + (hasEndurance ? pluginRef.getLocaleManager().getString("Perks.ActivationTime.Bonus", superBreakerLengthEndurance) : ""));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
pluginRef.getTextComponentFactory().getSubSkillTextComponents(player, textComponents, PrimarySkillType.MINING);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
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.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;
|
||||
|
||||
/**
|
||||
* This is the command that retrieves data about skills from in-game sources
|
||||
*/
|
||||
public class MmoInfoCommand implements TabExecutor {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
public MmoInfoCommand(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender commandSender, Command command, String s, String[] args) {
|
||||
/*
|
||||
* Only allow players to use this command
|
||||
*/
|
||||
if (commandSender instanceof Player) {
|
||||
if (args.length < 1)
|
||||
return false;
|
||||
|
||||
Player player = (Player) commandSender;
|
||||
if (pluginRef.getPermissionTools().mmoinfo(player)) {
|
||||
if (args == null || args[0] == null)
|
||||
return false;
|
||||
|
||||
if (args[0].equalsIgnoreCase("???")) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.MmoInfo.Header"));
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.MmoInfo.SubSkillHeader", "???"));
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.MmoInfo.DetailsHeader"));
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.MmoInfo.Mystery"));
|
||||
return true;
|
||||
} else if (InteractionManager.getAbstractByName(args[0]) != null || pluginRef.getSkillTools().isSubSkillNameExact(args[0])) {
|
||||
displayInfo(player, args[0]);
|
||||
return true;
|
||||
}
|
||||
|
||||
//Not a real skill
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.MmoInfo.NoMatch"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
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().EXACT_SUBSKILL_NAMES, new ArrayList<>(pluginRef.getSkillTools().EXACT_SUBSKILL_NAMES.size()));
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
|
||||
private void displayInfo(Player player, String subSkillName) {
|
||||
//Check to see if the skill exists in the new system
|
||||
AbstractSubSkill abstractSubSkill = InteractionManager.getAbstractByName(subSkillName);
|
||||
if (abstractSubSkill != null) {
|
||||
/* New System Skills are programmable */
|
||||
abstractSubSkill.printInfo(player);
|
||||
//pluginRef.getTextComponentFactory().sendPlayerUrlHeader(player);
|
||||
} else {
|
||||
/*
|
||||
* Skill is only in the old system
|
||||
*/
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.MmoInfo.Header"));
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.MmoInfo.SubSkillHeader", subSkillName));
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.MmoInfo.DetailsHeader"));
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.MmoInfo.OldSkill"));
|
||||
}
|
||||
|
||||
for (SubSkillType subSkillType : SubSkillType.values()) {
|
||||
if (subSkillType.getNiceNameNoSpaces(subSkillType).equalsIgnoreCase(subSkillName))
|
||||
subSkillName = subSkillType.getWikiName(subSkillType.toString());
|
||||
}
|
||||
|
||||
//Send Player Wiki Link
|
||||
pluginRef.getTextComponentFactory().sendPlayerSubSkillWikiLink(player, subSkillName);
|
||||
}
|
||||
}
|
||||
@@ -1,123 +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.mcMMO;
|
||||
import com.gmail.nossr50.skills.repair.RepairManager;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class RepairCommand extends SkillCommand {
|
||||
private String repairMasteryBonus;
|
||||
private String superRepairChance;
|
||||
private String superRepairChanceLucky;
|
||||
|
||||
private boolean canSuperRepair;
|
||||
private boolean canMasterRepair;
|
||||
private boolean canArcaneForge;
|
||||
// private boolean canRepairStone;
|
||||
// private boolean canRepairIron;
|
||||
// private boolean canRepairGold;
|
||||
// private boolean canRepairDiamond;
|
||||
// private boolean canRepairString;
|
||||
// private boolean canRepairLeather;
|
||||
// private boolean canRepairWood;
|
||||
private boolean arcaneBypass;
|
||||
|
||||
// private int diamondLevel;
|
||||
// private int goldLevel;
|
||||
// private int ironLevel;
|
||||
// private int stoneLevel;
|
||||
|
||||
public RepairCommand(mcMMO pluginRef) {
|
||||
super(PrimarySkillType.REPAIR, pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// We're using pickaxes here, not the best but it works
|
||||
// Repairable diamondRepairable = pluginRef.getRepairableManager().getRepairable(Material.DIAMOND_PICKAXE);
|
||||
// Repairable goldRepairable = pluginRef.getRepairableManager().getRepairable(Material.GOLDEN_PICKAXE);
|
||||
// Repairable ironRepairable = pluginRef.getRepairableManager().getRepairable(Material.IRON_PICKAXE);
|
||||
// Repairable stoneRepairable = pluginRef.getRepairableManager().getRepairable(Material.STONE_PICKAXE);
|
||||
|
||||
// TODO: This isn't really accurate - if they don't have pickaxes loaded it doesn't always mean the repair level is 0
|
||||
// diamondLevel = (diamondRepairable == null) ? 0 : diamondRepairable.getMinimumLevel();
|
||||
// goldLevel = (goldRepairable == null) ? 0 : goldRepairable.getMinimumLevel();
|
||||
// ironLevel = (ironRepairable == null) ? 0 : ironRepairable.getMinimumLevel();
|
||||
// stoneLevel = (stoneRepairable == null) ? 0 : stoneRepairable.getMinimumLevel();
|
||||
|
||||
// REPAIR MASTERY
|
||||
if (canMasterRepair) {
|
||||
double maxBonus = pluginRef.getDynamicSettingsManager().getSkillPropertiesManager().getMaxBonus(SubSkillType.REPAIR_REPAIR_MASTERY);
|
||||
int maxBonusLevel = pluginRef.getDynamicSettingsManager().getSkillPropertiesManager().getMaxBonusLevel(SubSkillType.REPAIR_REPAIR_MASTERY);
|
||||
|
||||
repairMasteryBonus = percent.format(Math.min(((maxBonus / maxBonusLevel) * skillValue), maxBonus) / 100D);
|
||||
}
|
||||
|
||||
// SUPER REPAIR
|
||||
if (canSuperRepair) {
|
||||
String[] superRepairStrings = getAbilityDisplayValues(player, SubSkillType.REPAIR_SUPER_REPAIR);
|
||||
superRepairChance = superRepairStrings[0];
|
||||
superRepairChanceLucky = superRepairStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canSuperRepair = canUseSubSkill(player, SubSkillType.REPAIR_SUPER_REPAIR);
|
||||
canMasterRepair = canUseSubSkill(player, SubSkillType.REPAIR_REPAIR_MASTERY);
|
||||
canArcaneForge = canUseSubSkill(player, SubSkillType.REPAIR_ARCANE_FORGING);
|
||||
// canRepairDiamond = Permissions.repairMaterialType(player, ItemMaterialCategory.DIAMOND);
|
||||
// canRepairGold = Permissions.repairMaterialType(player, ItemMaterialCategory.GOLD);
|
||||
// canRepairIron = Permissions.repairMaterialType(player, ItemMaterialCategory.IRON);
|
||||
// canRepairStone = Permissions.repairMaterialType(player, ItemMaterialCategory.STONE);
|
||||
// canRepairString = Permissions.repairMaterialType(player, ItemMaterialCategory.STRING);
|
||||
// canRepairLeather = Permissions.repairMaterialType(player, ItemMaterialCategory.LEATHER);
|
||||
// canRepairWood = Permissions.repairMaterialType(player, ItemMaterialCategory.WOOD);
|
||||
arcaneBypass = (pluginRef.getPermissionTools().arcaneBypass(player) || pluginRef.getPermissionTools().hasRepairEnchantBypassPerk(player));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canArcaneForge) {
|
||||
RepairManager repairManager = pluginRef.getUserManager().getPlayer(player).getRepairManager();
|
||||
|
||||
messages.add(getStatMessage(false, true,
|
||||
SubSkillType.REPAIR_ARCANE_FORGING,
|
||||
String.valueOf(pluginRef.getRankTools().getRank(player, SubSkillType.REPAIR_ARCANE_FORGING)),
|
||||
pluginRef.getRankTools().getHighestRankStr(SubSkillType.REPAIR_ARCANE_FORGING)));
|
||||
|
||||
if (pluginRef.getConfigManager().getConfigRepair().getArcaneForging().isDowngradesEnabled() || pluginRef.getConfigManager().getConfigRepair().getArcaneForging().isMayLoseEnchants()) {
|
||||
messages.add(getStatMessage(true, true, SubSkillType.REPAIR_ARCANE_FORGING,
|
||||
String.valueOf(arcaneBypass ? 100 : repairManager.getKeepEnchantChance()),
|
||||
String.valueOf(arcaneBypass ? 0 : repairManager.getDowngradeEnchantChance()))); //Jesus those parentheses
|
||||
}
|
||||
}
|
||||
|
||||
if (canMasterRepair) {
|
||||
messages.add(getStatMessage(false, true, SubSkillType.REPAIR_REPAIR_MASTERY, repairMasteryBonus));
|
||||
}
|
||||
|
||||
if (canSuperRepair) {
|
||||
messages.add(getStatMessage(SubSkillType.REPAIR_SUPER_REPAIR, superRepairChance)
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", superRepairChanceLucky) : ""));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
pluginRef.getTextComponentFactory().getSubSkillTextComponents(player, textComponents, PrimarySkillType.REPAIR);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,70 +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.mcMMO;
|
||||
import com.gmail.nossr50.skills.salvage.SalvageManager;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class SalvageCommand extends SkillCommand {
|
||||
private boolean canScrapCollector;
|
||||
private boolean canArcaneSalvage;
|
||||
|
||||
public SalvageCommand(mcMMO pluginRef) {
|
||||
super(PrimarySkillType.SALVAGE, pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canScrapCollector = canUseSubSkill(player, SubSkillType.SALVAGE_SCRAP_COLLECTOR);
|
||||
canArcaneSalvage = canUseSubSkill(player, SubSkillType.SALVAGE_ARCANE_SALVAGE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
SalvageManager salvageManager = pluginRef.getUserManager().getPlayer(player).getSalvageManager();
|
||||
|
||||
if (canScrapCollector) {
|
||||
messages.add(getStatMessage(false, true,
|
||||
SubSkillType.SALVAGE_SCRAP_COLLECTOR,
|
||||
String.valueOf(pluginRef.getRankTools().getRank(player, SubSkillType.SALVAGE_SCRAP_COLLECTOR)),
|
||||
pluginRef.getRankTools().getHighestRankStr(SubSkillType.SALVAGE_SCRAP_COLLECTOR)));
|
||||
}
|
||||
|
||||
if (canArcaneSalvage) {
|
||||
messages.add(getStatMessage(false, true, SubSkillType.SALVAGE_ARCANE_SALVAGE,
|
||||
String.valueOf(salvageManager.getArcaneSalvageRank()),
|
||||
String.valueOf(pluginRef.getRankTools().getHighestRank(SubSkillType.SALVAGE_ARCANE_SALVAGE))));
|
||||
|
||||
if (pluginRef.getDynamicSettingsManager().getSkillBehaviourManager().getSalvageBehaviour().isArcaneSalvageEnchantLoss()) {
|
||||
messages.add(pluginRef.getLocaleManager().getString("Ability.Generic.Template", pluginRef.getLocaleManager().getString("Salvage.Arcane.ExtractFull"), percent.format(salvageManager.getExtractFullEnchantChance() / 100)));
|
||||
}
|
||||
|
||||
if (pluginRef.getDynamicSettingsManager().getSkillBehaviourManager().getSalvageBehaviour().isArcaneSalvageDowngrades()) {
|
||||
messages.add(pluginRef.getLocaleManager().getString("Ability.Generic.Template", pluginRef.getLocaleManager().getString("Salvage.Arcane.ExtractPartial"), percent.format(salvageManager.getExtractPartialEnchantChance() / 100)));
|
||||
}
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
pluginRef.getTextComponentFactory().getSubSkillTextComponents(player, textComponents, PrimarySkillType.SALVAGE);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,292 +0,0 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.skills.child.FamilyTree;
|
||||
import com.gmail.nossr50.util.StringUtils;
|
||||
import com.gmail.nossr50.util.skills.SkillActivationType;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
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 java.text.DecimalFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
|
||||
public abstract class SkillCommand implements TabExecutor {
|
||||
protected PrimarySkillType skill;
|
||||
protected DecimalFormat percent = new DecimalFormat("##0.00%");
|
||||
protected DecimalFormat decimal = new DecimalFormat("##0.00");
|
||||
private String skillName;
|
||||
private CommandExecutor skillGuideCommand;
|
||||
protected mcMMO pluginRef;
|
||||
|
||||
public SkillCommand(PrimarySkillType primarySkillType, mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
this.skill = primarySkillType;
|
||||
skillName = pluginRef.getSkillTools().getLocalizedSkillName(primarySkillType);
|
||||
skillGuideCommand = new SkillGuideCommand(primarySkillType, pluginRef);
|
||||
}
|
||||
|
||||
public static String[] addItemToFirstPositionOfArray(String itemToAdd, String... existingArray) {
|
||||
String[] newArray = new String[existingArray.length + 1];
|
||||
newArray[0] = itemToAdd;
|
||||
|
||||
System.arraycopy(existingArray, 0, newArray, 1, existingArray.length);
|
||||
|
||||
return newArray;
|
||||
}
|
||||
|
||||
@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;
|
||||
}
|
||||
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
Player player = (Player) sender;
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
boolean isLucky = pluginRef.getPermissionTools().lucky(player, skill);
|
||||
boolean hasEndurance = pluginRef.getSkillTools().getEnduranceLength(player) > 0;
|
||||
double skillValue = mcMMOPlayer.getSkillLevel(skill);
|
||||
|
||||
//Send the players a few blank lines to make finding the top of the skill command easier
|
||||
if (pluginRef.getConfigManager().getConfigCommands().isSendBlankLines())
|
||||
for (int i = 0; i < 2; i++) {
|
||||
player.sendMessage("");
|
||||
}
|
||||
|
||||
permissionsCheck(player);
|
||||
dataCalculations(player, skillValue);
|
||||
|
||||
sendSkillCommandHeader(player, mcMMOPlayer, (int) skillValue);
|
||||
|
||||
//Make JSON text components
|
||||
List<TextComponent> subskillTextComponents = getTextComponents(player);
|
||||
|
||||
//Subskills Header
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Skills.Overhaul.Header", pluginRef.getLocaleManager().getString("Effects.SubSkills.Overhaul")));
|
||||
|
||||
//Send JSON text components
|
||||
|
||||
pluginRef.getTextComponentFactory().sendPlayerSubSkillList(player, subskillTextComponents);
|
||||
|
||||
/*for(TextComponent tc : subskillTextComponents)
|
||||
{
|
||||
player.spigot().sendMessage(new TextComponent[]{tc, new TextComponent(": TESTING")});
|
||||
}*/
|
||||
|
||||
//Stats
|
||||
getStatMessages(player, isLucky, hasEndurance, skillValue);
|
||||
|
||||
//Header
|
||||
|
||||
|
||||
//Link Header
|
||||
if (pluginRef.getConfigManager().getConfigAds().isShowWebsiteLinks()) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Overhaul.mcMMO.Header"));
|
||||
pluginRef.getTextComponentFactory().sendPlayerUrlHeader(player);
|
||||
}
|
||||
|
||||
|
||||
if (pluginRef.getScoreboardSettings().getScoreboardsEnabled()
|
||||
&& pluginRef.getScoreboardSettings().getConfigSectionScoreboardTypes()
|
||||
.getConfigSectionSkillBoard().isUseThisBoard()) {
|
||||
pluginRef.getScoreboardManager().enablePlayerSkillScoreboard(player, skill);
|
||||
}
|
||||
|
||||
return true;
|
||||
default:
|
||||
return skillGuideCommand.onCommand(sender, command, label, args);
|
||||
}
|
||||
}
|
||||
|
||||
private void getStatMessages(Player player, boolean isLucky, boolean hasEndurance, double skillValue) {
|
||||
List<String> statsMessages = statsDisplay(player, skillValue, hasEndurance, isLucky);
|
||||
|
||||
if (!statsMessages.isEmpty()) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Skills.Overhaul.Header", pluginRef.getLocaleManager().getString("Commands.Stats.Self.Overhaul")));
|
||||
|
||||
for (String message : statsMessages) {
|
||||
player.sendMessage(message);
|
||||
}
|
||||
}
|
||||
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Guides.Available", skillName, skillName.toLowerCase(Locale.ENGLISH)));
|
||||
}
|
||||
|
||||
private void sendSkillCommandHeader(Player player, McMMOPlayer mcMMOPlayer, int skillValue) {
|
||||
ChatColor hd1 = ChatColor.DARK_AQUA;
|
||||
ChatColor c1 = ChatColor.GOLD;
|
||||
ChatColor c2 = ChatColor.RED;
|
||||
|
||||
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Skills.Overhaul.Header", skillName));
|
||||
|
||||
if (!pluginRef.getSkillTools().isChildSkill(skill)) {
|
||||
/*
|
||||
* NON-CHILD SKILLS
|
||||
*/
|
||||
|
||||
//XP GAIN METHOD
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.XPGain.Overhaul", pluginRef.getLocaleManager().getString("Commands.XPGain." + StringUtils.getCapitalized(skill.toString()))));
|
||||
|
||||
//LEVEL
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Effects.Level.Overhaul", skillValue, mcMMOPlayer.getSkillXpLevel(skill), mcMMOPlayer.getXpToLevel(skill)));
|
||||
|
||||
} else {
|
||||
/*
|
||||
* CHILD SKILLS
|
||||
*/
|
||||
|
||||
|
||||
Set<PrimarySkillType> parents = FamilyTree.getParents(skill);
|
||||
ArrayList<PrimarySkillType> parentList = new ArrayList<>();
|
||||
|
||||
//TODO: Add JSON here
|
||||
/*player.sendMessage(parent.getName() + " - " + pluginRef.getLocaleManager().getString("Effects.Level.Overhaul", mcMMOPlayer.getSkillLevel(parent), mcMMOPlayer.getSkillXpLevel(parent), mcMMOPlayer.getXpToLevel(parent)))*/
|
||||
parentList.addAll(parents);
|
||||
|
||||
StringBuilder parentMessage = new StringBuilder();
|
||||
|
||||
for (int i = 0; i < parentList.size(); i++) {
|
||||
if (i + 1 < parentList.size()) {
|
||||
parentMessage.append(pluginRef.getLocaleManager().getString("Effects.Child.ParentList", pluginRef.getSkillTools().getLocalizedSkillName(parentList.get(i)), mcMMOPlayer.getSkillLevel(parentList.get(i))));
|
||||
parentMessage.append(ChatColor.GRAY + ", ");
|
||||
} else {
|
||||
parentMessage.append(pluginRef.getLocaleManager().getString("Effects.Child.ParentList", pluginRef.getSkillTools().getLocalizedSkillName(parentList.get(i)), mcMMOPlayer.getSkillLevel(parentList.get(i))));
|
||||
}
|
||||
}
|
||||
|
||||
//XP GAIN METHOD
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.XPGain.Overhaul", pluginRef.getLocaleManager().getString("Commands.XPGain.Child")));
|
||||
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Effects.Child.Overhaul", skillValue, parentMessage.toString()));
|
||||
//LEVEL
|
||||
//player.sendMessage(pluginRef.getLocaleManager().getString("Effects.Child.Overhaul", skillValue, skillValue));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
return ImmutableList.of("?");
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
|
||||
protected int calculateRank(double skillValue, int maxLevel, int rankChangeLevel) {
|
||||
return Math.min((int) skillValue, maxLevel) / rankChangeLevel;
|
||||
}
|
||||
|
||||
protected String[] getAbilityDisplayValues(Player player, SubSkillType subSkill) {
|
||||
return pluginRef.getRandomChanceTools().calculateAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, subSkill);
|
||||
}
|
||||
|
||||
protected String[] formatLengthDisplayValues(Player player, double skillValue) {
|
||||
|
||||
int length = pluginRef.getSkillTools().calculateAbilityLength(pluginRef.getUserManager().getPlayer(player), skill, pluginRef.getSkillTools().getSuperAbility(skill));
|
||||
|
||||
int enduranceLength = pluginRef.getSkillTools().calculateAbilityLengthPerks(pluginRef.getUserManager().getPlayer(player), skill, pluginRef.getSkillTools().getSuperAbility(skill));
|
||||
|
||||
return new String[]{String.valueOf(length), String.valueOf(enduranceLength)};
|
||||
}
|
||||
|
||||
protected String getStatMessage(SubSkillType subSkillType, String... vars) {
|
||||
return getStatMessage(false, false, subSkillType, vars);
|
||||
}
|
||||
|
||||
protected String getStatMessage(boolean isExtra, boolean isCustom, SubSkillType subSkillType, String... vars) {
|
||||
String templateKey = isCustom ? "Ability.Generic.Template.Custom" : "Ability.Generic.Template";
|
||||
String statDescriptionKey = !isExtra ? subSkillType.getLocaleKeyStatDescription(pluginRef) : subSkillType.getLocaleKeyStatExtraDescription(pluginRef);
|
||||
|
||||
if (isCustom)
|
||||
return pluginRef.getLocaleManager().getString(templateKey, pluginRef.getLocaleManager().getString(statDescriptionKey, (Object[]) vars));
|
||||
else {
|
||||
String[] mergedList = pluginRef.getNotificationManager().addItemToFirstPositionOfArray(pluginRef.getLocaleManager().getString(statDescriptionKey), vars);
|
||||
return pluginRef.getLocaleManager().getString(templateKey, (Object[]) mergedList);
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract void dataCalculations(Player player, double skillValue);
|
||||
|
||||
protected String getLimitBreakDescriptionParameter(SubSkillType subSkillType) {
|
||||
//TODO: Hacky gross code below
|
||||
|
||||
boolean pveAllowed = false;
|
||||
|
||||
switch(subSkillType) {
|
||||
case ARCHERY_ARCHERY_LIMIT_BREAK:
|
||||
if(pluginRef.getConfigManager().getConfigArchery().getLimitBreak().isEnabledForPVE()) {
|
||||
pveAllowed = true;
|
||||
}
|
||||
break;
|
||||
case AXES_AXES_LIMIT_BREAK:
|
||||
if(pluginRef.getConfigManager().getConfigAxes().getSubSkills().getConfigAxesLimitBreak().isEnabledForPVE()) {
|
||||
pveAllowed = true;
|
||||
}
|
||||
break;
|
||||
case SWORDS_SWORDS_LIMIT_BREAK:
|
||||
if(pluginRef.getConfigManager().getConfigSwords().getSubSkills().getSwordsLimitBreak().isEnabledForPVE()) {
|
||||
pveAllowed = true;
|
||||
}
|
||||
break;
|
||||
case UNARMED_UNARMED_LIMIT_BREAK:
|
||||
if(pluginRef.getConfigManager().getConfigUnarmed().getSubSkills().getUnarmedLimitBreak().isEnabledForPVE()) {
|
||||
pveAllowed = true;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
pluginRef.getLogger().severe("This skill has no limit break PVE setting defined!");
|
||||
}
|
||||
|
||||
if(pveAllowed) {
|
||||
return "(PVP/PVE)";
|
||||
} else {
|
||||
return "(PVP)";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected abstract void permissionsCheck(Player player);
|
||||
|
||||
//protected abstract List<String> effectsDisplay();
|
||||
|
||||
protected abstract List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky);
|
||||
|
||||
protected abstract List<TextComponent> getTextComponents(Player player);
|
||||
|
||||
/**
|
||||
* Checks if a player can use a skill
|
||||
*
|
||||
* @param player target player
|
||||
* @param subSkillType target subskill
|
||||
* @return true if the player has permission and has the skill unlocked
|
||||
*/
|
||||
protected boolean canUseSubSkill(Player player, SubSkillType subSkillType) {
|
||||
return pluginRef.getPermissionTools().isSubSkillEnabled(player, subSkillType) && pluginRef.getRankTools().hasUnlockedSubskill(player, subSkillType);
|
||||
}
|
||||
}
|
||||
@@ -1,93 +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.mcMMO;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class SmeltingCommand extends SkillCommand {
|
||||
private String burnTimeModifier;
|
||||
private String str_secondSmeltChance;
|
||||
private String str_secondSmeltChanceLucky;
|
||||
private String str_fluxMiningChance;
|
||||
private String str_fluxMiningChanceLucky;
|
||||
|
||||
private boolean canFuelEfficiency;
|
||||
private boolean canSecondSmelt;
|
||||
private boolean canFluxMine;
|
||||
private boolean canUnderstandTheArt;
|
||||
|
||||
public SmeltingCommand(mcMMO pluginRef) {
|
||||
super(PrimarySkillType.SMELTING, pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// FUEL EFFICIENCY
|
||||
if (canFuelEfficiency) {
|
||||
burnTimeModifier = String.valueOf(pluginRef.getUserManager().getPlayer(player).getSmeltingManager().getFuelEfficiencyMultiplier());
|
||||
}
|
||||
|
||||
// FLUX MINING
|
||||
/*if (canFluxMine) {
|
||||
String[] fluxMiningStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.SMELTING_FLUX_MINING);
|
||||
str_fluxMiningChance = fluxMiningStrings[0];
|
||||
str_fluxMiningChanceLucky = fluxMiningStrings[1];
|
||||
}*/
|
||||
|
||||
// SECOND SMELT
|
||||
if (canSecondSmelt) {
|
||||
String[] secondSmeltStrings = getAbilityDisplayValues(player, SubSkillType.SMELTING_SECOND_SMELT);
|
||||
str_secondSmeltChance = secondSmeltStrings[0];
|
||||
str_secondSmeltChanceLucky = secondSmeltStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canFuelEfficiency = canUseSubSkill(player, SubSkillType.SMELTING_FUEL_EFFICIENCY);
|
||||
canSecondSmelt = canUseSubSkill(player, SubSkillType.SMELTING_SECOND_SMELT);
|
||||
//canFluxMine = canUseSubskill(player, SubSkillType.SMELTING_FLUX_MINING);
|
||||
canUnderstandTheArt = pluginRef.getPermissionTools().vanillaXpBoost(player, skill) && pluginRef.getRankTools().hasUnlockedSubskill(player, SubSkillType.SMELTING_UNDERSTANDING_THE_ART);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
/*if (canFluxMine) {
|
||||
messages.add(getStatMessage(SubSkillType.SMELTING_FLUX_MINING, str_fluxMiningChance)
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", str_fluxMiningChanceLucky) : ""));
|
||||
//messages.add(pluginRef.getLocaleManager().getString("Smelting.Ability.FluxMining", str_fluxMiningChance) + (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", str_fluxMiningChanceLucky) : ""));
|
||||
}*/
|
||||
|
||||
if (canFuelEfficiency) {
|
||||
messages.add(getStatMessage(false, true, SubSkillType.SMELTING_FUEL_EFFICIENCY, burnTimeModifier));
|
||||
}
|
||||
|
||||
if (canSecondSmelt) {
|
||||
messages.add(getStatMessage(SubSkillType.SMELTING_SECOND_SMELT, str_secondSmeltChance)
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", str_secondSmeltChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canUnderstandTheArt) {
|
||||
messages.add(getStatMessage(false, true, SubSkillType.SMELTING_UNDERSTANDING_THE_ART,
|
||||
String.valueOf(pluginRef.getUserManager().getPlayer(player).getSmeltingManager().getVanillaXpMultiplier())));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
pluginRef.getTextComponentFactory().getSubSkillTextComponents(player, textComponents, PrimarySkillType.SMELTING);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,115 +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.mcMMO;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class SwordsCommand extends SkillCommand {
|
||||
private String counterChance;
|
||||
private String counterChanceLucky;
|
||||
private int bleedLength;
|
||||
private String bleedChance;
|
||||
private String bleedChanceLucky;
|
||||
private String serratedStrikesLength;
|
||||
private String serratedStrikesLengthEndurance;
|
||||
|
||||
private boolean canCounter;
|
||||
private boolean canSerratedStrike;
|
||||
private boolean canBleed;
|
||||
|
||||
public SwordsCommand(mcMMO pluginRef) {
|
||||
super(PrimarySkillType.SWORDS, pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// SWORDS_COUNTER_ATTACK
|
||||
if (canCounter) {
|
||||
String[] counterStrings = getAbilityDisplayValues(player, SubSkillType.SWORDS_COUNTER_ATTACK);
|
||||
counterChance = counterStrings[0];
|
||||
counterChanceLucky = counterStrings[1];
|
||||
}
|
||||
|
||||
// SWORDS_RUPTURE
|
||||
if (canBleed) {
|
||||
bleedLength = pluginRef.getUserManager().getPlayer(player).getSwordsManager().getRuptureBleedTicks();
|
||||
|
||||
String[] bleedStrings = getAbilityDisplayValues(player, SubSkillType.SWORDS_RUPTURE);
|
||||
bleedChance = bleedStrings[0];
|
||||
bleedChanceLucky = bleedStrings[1];
|
||||
}
|
||||
|
||||
// SERRATED STRIKES
|
||||
if (canSerratedStrike) {
|
||||
String[] serratedStrikesStrings = formatLengthDisplayValues(player, skillValue);
|
||||
serratedStrikesLength = serratedStrikesStrings[0];
|
||||
serratedStrikesLengthEndurance = serratedStrikesStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canBleed = canUseSubSkill(player, SubSkillType.SWORDS_RUPTURE);
|
||||
canCounter = canUseSubSkill(player, SubSkillType.SWORDS_COUNTER_ATTACK);
|
||||
canSerratedStrike = pluginRef.getRankTools().hasUnlockedSubskill(player, SubSkillType.SWORDS_SERRATED_STRIKES) && pluginRef.getPermissionTools().serratedStrikes(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
int ruptureTicks = pluginRef.getUserManager().getPlayer(player).getSwordsManager().getRuptureBleedTicks();
|
||||
double ruptureDamagePlayer = pluginRef.getConfigManager().getConfigSwords().getRuptureDamagePlayer();
|
||||
double pveRupture = pluginRef.getConfigManager().getConfigSwords().getRuptureDamageMobs();
|
||||
|
||||
double pvpDamageRupture = pluginRef.getRankTools().getRank(player, SubSkillType.SWORDS_RUPTURE) >= 3 ? ruptureDamagePlayer * 1.5D : ruptureDamagePlayer;
|
||||
double ruptureDamageMobs = pluginRef.getRankTools().getRank(player, SubSkillType.SWORDS_RUPTURE) >= 3 ? pveRupture * 1.5D : pveRupture;
|
||||
|
||||
if (canCounter) {
|
||||
messages.add(getStatMessage(SubSkillType.SWORDS_COUNTER_ATTACK, counterChance)
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", counterChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canBleed) {
|
||||
messages.add(getStatMessage(SubSkillType.SWORDS_RUPTURE, bleedChance)
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", bleedChanceLucky) : ""));
|
||||
messages.add(getStatMessage(true, true, SubSkillType.SWORDS_RUPTURE,
|
||||
String.valueOf(ruptureTicks),
|
||||
String.valueOf(pvpDamageRupture),
|
||||
String.valueOf(ruptureDamageMobs)));
|
||||
|
||||
messages.add(pluginRef.getLocaleManager().getString("Swords.Combat.Rupture.Note"));
|
||||
}
|
||||
|
||||
if (canSerratedStrike) {
|
||||
messages.add(getStatMessage(SubSkillType.SWORDS_SERRATED_STRIKES, serratedStrikesLength)
|
||||
+ (hasEndurance ? pluginRef.getLocaleManager().getString("Perks.ActivationTime.Bonus", serratedStrikesLengthEndurance) : ""));
|
||||
}
|
||||
|
||||
if (canUseSubSkill(player, SubSkillType.SWORDS_STAB)) {
|
||||
messages.add(getStatMessage(SubSkillType.SWORDS_STAB,
|
||||
String.valueOf(pluginRef.getUserManager().getPlayer(player).getSwordsManager().getStabDamage())));
|
||||
}
|
||||
|
||||
if (canUseSubSkill(player, SubSkillType.SWORDS_SWORDS_LIMIT_BREAK)) {
|
||||
messages.add(getStatMessage(SubSkillType.SWORDS_SWORDS_LIMIT_BREAK,
|
||||
String.valueOf(pluginRef.getCombatTools().getLimitBreakDamageAgainstQuality(player, SubSkillType.SWORDS_SWORDS_LIMIT_BREAK, 1000))));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
pluginRef.getTextComponentFactory().getSubSkillTextComponents(player, textComponents, PrimarySkillType.SWORDS);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,112 +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.mcMMO;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class TamingCommand extends SkillCommand {
|
||||
private String goreChance;
|
||||
private String goreChanceLucky;
|
||||
|
||||
private boolean canBeastLore;
|
||||
private boolean canGore;
|
||||
private boolean canSharpenedClaws;
|
||||
private boolean canEnvironmentallyAware;
|
||||
private boolean canThickFur;
|
||||
private boolean canShockProof;
|
||||
private boolean canCallWild;
|
||||
private boolean canFastFood;
|
||||
private boolean canHolyHound;
|
||||
|
||||
public TamingCommand(mcMMO pluginRef) {
|
||||
super(PrimarySkillType.TAMING, pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
if (canGore) {
|
||||
String[] goreStrings = getAbilityDisplayValues(player, SubSkillType.TAMING_GORE);
|
||||
goreChance = goreStrings[0];
|
||||
goreChanceLucky = goreStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canBeastLore = canUseSubSkill(player, SubSkillType.TAMING_BEAST_LORE);
|
||||
canCallWild = pluginRef.getPermissionTools().callOfTheWild(player, EntityType.HORSE) || pluginRef.getPermissionTools().callOfTheWild(player, EntityType.WOLF) || pluginRef.getPermissionTools().callOfTheWild(player, EntityType.OCELOT);
|
||||
canEnvironmentallyAware = canUseSubSkill(player, SubSkillType.TAMING_ENVIRONMENTALLY_AWARE);
|
||||
canFastFood = canUseSubSkill(player, SubSkillType.TAMING_FAST_FOOD_SERVICE);
|
||||
canGore = canUseSubSkill(player, SubSkillType.TAMING_GORE);
|
||||
canSharpenedClaws = canUseSubSkill(player, SubSkillType.TAMING_SHARPENED_CLAWS);
|
||||
canShockProof = canUseSubSkill(player, SubSkillType.TAMING_SHOCK_PROOF);
|
||||
canThickFur = canUseSubSkill(player, SubSkillType.TAMING_THICK_FUR);
|
||||
canHolyHound = canUseSubSkill(player, SubSkillType.TAMING_HOLY_HOUND);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canEnvironmentallyAware) {
|
||||
messages.add(pluginRef.getLocaleManager().getString("Ability.Generic.Template", pluginRef.getLocaleManager().getString("Taming.Ability.Bonus.0"), pluginRef.getLocaleManager().getString("Taming.Ability.Bonus.1")));
|
||||
}
|
||||
|
||||
if (canFastFood) {
|
||||
messages.add(pluginRef.getLocaleManager().getString("Ability.Generic.Template",
|
||||
pluginRef.getLocaleManager().getString("Taming.Ability.Bonus.8"),
|
||||
pluginRef.getLocaleManager().getString("Taming.Ability.Bonus.9",
|
||||
percent.format(pluginRef.getDynamicSettingsManager().getSkillStaticChance(SubSkillType.TAMING_FAST_FOOD_SERVICE) / 100D))));
|
||||
}
|
||||
|
||||
if (canGore) {
|
||||
messages.add(pluginRef.getLocaleManager().getString("Ability.Generic.Template",
|
||||
pluginRef.getLocaleManager().getString("Taming.Combat.Chance.Gore"),
|
||||
goreChance) + (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", goreChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canHolyHound) {
|
||||
messages.add(pluginRef.getLocaleManager().getString("Ability.Generic.Template",
|
||||
pluginRef.getLocaleManager().getString("Taming.Ability.Bonus.10"),
|
||||
pluginRef.getLocaleManager().getString("Taming.Ability.Bonus.11")));
|
||||
}
|
||||
|
||||
if (canSharpenedClaws) {
|
||||
messages.add(pluginRef.getLocaleManager().getString("Ability.Generic.Template",
|
||||
pluginRef.getLocaleManager().getString("Taming.Ability.Bonus.6"),
|
||||
pluginRef.getLocaleManager().getString("Taming.Ability.Bonus.7",
|
||||
pluginRef.getDynamicSettingsManager().getSkillBehaviourManager().getTamingBehaviour().getSharpenedClawsBonusDamage(true))));
|
||||
}
|
||||
|
||||
if (canShockProof) {
|
||||
messages.add(pluginRef.getLocaleManager().getString("Ability.Generic.Template",
|
||||
pluginRef.getLocaleManager().getString("Taming.Ability.Bonus.4"),
|
||||
pluginRef.getLocaleManager().getString("Taming.Ability.Bonus.5",
|
||||
pluginRef.getDynamicSettingsManager().getSkillBehaviourManager().getTamingBehaviour().getShockProofModifier())));
|
||||
}
|
||||
|
||||
if (canThickFur) {
|
||||
messages.add(pluginRef.getLocaleManager().getString("Ability.Generic.Template",
|
||||
pluginRef.getLocaleManager().getString("Taming.Ability.Bonus.2"),
|
||||
pluginRef.getLocaleManager().getString("Taming.Ability.Bonus.3",
|
||||
pluginRef.getDynamicSettingsManager().getSkillBehaviourManager().getTamingBehaviour().getThickFurModifier())));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
pluginRef.getTextComponentFactory().getSubSkillTextComponents(player, textComponents, this.skill);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,127 +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.mcMMO;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class UnarmedCommand extends SkillCommand {
|
||||
private String berserkLength;
|
||||
private String berserkLengthEndurance;
|
||||
private String deflectChance;
|
||||
private String deflectChanceLucky;
|
||||
private String disarmChance;
|
||||
private String disarmChanceLucky;
|
||||
private String ironGripChance;
|
||||
private String ironGripChanceLucky;
|
||||
private double ironArmBonus;
|
||||
|
||||
private boolean canBerserk;
|
||||
private boolean canDisarm;
|
||||
private boolean canIronArm;
|
||||
private boolean canDeflect;
|
||||
private boolean canIronGrip;
|
||||
|
||||
public UnarmedCommand(mcMMO pluginRef) {
|
||||
super(PrimarySkillType.UNARMED, pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// UNARMED_ARROW_DEFLECT
|
||||
if (canDeflect) {
|
||||
String[] deflectStrings = getAbilityDisplayValues(player, SubSkillType.UNARMED_ARROW_DEFLECT);
|
||||
deflectChance = deflectStrings[0];
|
||||
deflectChanceLucky = deflectStrings[1];
|
||||
}
|
||||
|
||||
// BERSERK
|
||||
if (canBerserk) {
|
||||
String[] berserkStrings = formatLengthDisplayValues(player, skillValue);
|
||||
berserkLength = berserkStrings[0];
|
||||
berserkLengthEndurance = berserkStrings[1];
|
||||
}
|
||||
|
||||
// UNARMED_DISARM
|
||||
if (canDisarm) {
|
||||
String[] disarmStrings = getAbilityDisplayValues(player, SubSkillType.UNARMED_DISARM);
|
||||
disarmChance = disarmStrings[0];
|
||||
disarmChanceLucky = disarmStrings[1];
|
||||
}
|
||||
|
||||
// IRON ARM
|
||||
if (canIronArm) {
|
||||
ironArmBonus = pluginRef.getUserManager().getPlayer(player).getUnarmedManager().getIronArmDamage();
|
||||
}
|
||||
|
||||
// IRON GRIP
|
||||
if (canIronGrip) {
|
||||
String[] ironGripStrings = getAbilityDisplayValues(player, SubSkillType.UNARMED_IRON_GRIP);
|
||||
ironGripChance = ironGripStrings[0];
|
||||
ironGripChanceLucky = ironGripStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canBerserk = pluginRef.getRankTools().hasUnlockedSubskill(player, SubSkillType.UNARMED_BERSERK) && pluginRef.getPermissionTools().berserk(player);
|
||||
canIronArm = canUseSubSkill(player, SubSkillType.UNARMED_IRON_ARM_STYLE);
|
||||
canDeflect = canUseSubSkill(player, SubSkillType.UNARMED_ARROW_DEFLECT);
|
||||
canDisarm = canUseSubSkill(player, SubSkillType.UNARMED_DISARM);
|
||||
canIronGrip = canUseSubSkill(player, SubSkillType.UNARMED_IRON_GRIP);
|
||||
// TODO: Apparently we forgot about block cracker?
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canDeflect) {
|
||||
messages.add(getStatMessage(SubSkillType.UNARMED_ARROW_DEFLECT, deflectChance)
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", deflectChanceLucky) : ""));
|
||||
//messages.add(pluginRef.getLocaleManager().getString("Unarmed.Ability.Chance.ArrowDeflect", deflectChance) + (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", deflectChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canBerserk) {
|
||||
messages.add(getStatMessage(SubSkillType.UNARMED_BERSERK, berserkLength)
|
||||
+ (hasEndurance ? pluginRef.getLocaleManager().getString("Perks.ActivationTime.Bonus", berserkLengthEndurance) : ""));
|
||||
//messages.add(pluginRef.getLocaleManager().getString("Unarmed.Ability.Berserk.Length", berserkLength) + (hasEndurance ? pluginRef.getLocaleManager().getString("Perks.ActivationTime.Bonus", berserkLengthEndurance) : ""));
|
||||
}
|
||||
|
||||
if (canDisarm) {
|
||||
messages.add(getStatMessage(SubSkillType.UNARMED_DISARM, disarmChance)
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", disarmChanceLucky) : ""));
|
||||
//messages.add(pluginRef.getLocaleManager().getString("Unarmed.Ability.Chance.Disarm", disarmChance) + (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", disarmChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canIronArm) {
|
||||
messages.add(pluginRef.getLocaleManager().getString("Ability.Generic.Template", pluginRef.getLocaleManager().getString("Unarmed.Ability.Bonus.0"), pluginRef.getLocaleManager().getString("Unarmed.Ability.Bonus.1", ironArmBonus)));
|
||||
}
|
||||
|
||||
if (canIronGrip) {
|
||||
messages.add(getStatMessage(SubSkillType.UNARMED_IRON_GRIP, ironGripChance)
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", ironGripChanceLucky) : ""));
|
||||
//messages.add(pluginRef.getLocaleManager().getString("Unarmed.Ability.Chance.IronGrip", ironGripChance) + (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", ironGripChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canUseSubSkill(player, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK)) {
|
||||
messages.add(getStatMessage(SubSkillType.UNARMED_UNARMED_LIMIT_BREAK,
|
||||
String.valueOf(pluginRef.getCombatTools().getLimitBreakDamageAgainstQuality(player, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK, 1000))));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
pluginRef.getTextComponentFactory().getSubSkillTextComponents(player, textComponents, PrimarySkillType.UNARMED);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -1,91 +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.mcMMO;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class WoodcuttingCommand extends SkillCommand {
|
||||
private String treeFellerLength;
|
||||
private String treeFellerLengthEndurance;
|
||||
private String doubleDropChance;
|
||||
private String doubleDropChanceLucky;
|
||||
|
||||
private boolean canTreeFell;
|
||||
private boolean canLeafBlow;
|
||||
private boolean canDoubleDrop;
|
||||
private boolean canSplinter;
|
||||
private boolean canBarkSurgeon;
|
||||
private boolean canNaturesBounty;
|
||||
|
||||
public WoodcuttingCommand(mcMMO pluginRef) {
|
||||
super(PrimarySkillType.WOODCUTTING, pluginRef);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// DOUBLE DROPS
|
||||
if (canDoubleDrop) {
|
||||
setDoubleDropClassicChanceStrings(player);
|
||||
}
|
||||
|
||||
// TREE FELLER
|
||||
if (canTreeFell) {
|
||||
String[] treeFellerStrings = formatLengthDisplayValues(player, skillValue);
|
||||
treeFellerLength = treeFellerStrings[0];
|
||||
treeFellerLengthEndurance = treeFellerStrings[1];
|
||||
}
|
||||
}
|
||||
|
||||
private void setDoubleDropClassicChanceStrings(Player player) {
|
||||
String[] doubleDropStrings = getAbilityDisplayValues(player, SubSkillType.WOODCUTTING_HARVEST_LUMBER);
|
||||
doubleDropChance = doubleDropStrings[0];
|
||||
doubleDropChanceLucky = doubleDropStrings[1];
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canTreeFell = pluginRef.getRankTools().hasUnlockedSubskill(player, SubSkillType.WOODCUTTING_TREE_FELLER) && pluginRef.getPermissionTools().treeFeller(player);
|
||||
canDoubleDrop = canUseSubSkill(player, SubSkillType.WOODCUTTING_HARVEST_LUMBER) && pluginRef.getRankTools().getRank(player, SubSkillType.WOODCUTTING_HARVEST_LUMBER) >= 1;
|
||||
canLeafBlow = canUseSubSkill(player, SubSkillType.WOODCUTTING_LEAF_BLOWER);
|
||||
/*canSplinter = canUseSubskill(player, SubSkillType.WOODCUTTING_SPLINTER);
|
||||
canBarkSurgeon = canUseSubskill(player, SubSkillType.WOODCUTTING_BARK_SURGEON);
|
||||
canNaturesBounty = canUseSubskill(player, SubSkillType.WOODCUTTING_NATURES_BOUNTY);*/
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canDoubleDrop) {
|
||||
messages.add(getStatMessage(SubSkillType.WOODCUTTING_HARVEST_LUMBER, doubleDropChance)
|
||||
+ (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", doubleDropChanceLucky) : ""));
|
||||
}
|
||||
|
||||
if (canLeafBlow) {
|
||||
messages.add(pluginRef.getLocaleManager().getString("Ability.Generic.Template", pluginRef.getLocaleManager().getString("Woodcutting.Ability.0"), pluginRef.getLocaleManager().getString("Woodcutting.Ability.1")));
|
||||
}
|
||||
|
||||
if (canTreeFell) {
|
||||
messages.add(getStatMessage(SubSkillType.WOODCUTTING_TREE_FELLER, treeFellerLength)
|
||||
+ (hasEndurance ? pluginRef.getLocaleManager().getString("Perks.ActivationTime.Bonus", treeFellerLengthEndurance) : ""));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<TextComponent> getTextComponents(Player player) {
|
||||
List<TextComponent> textComponents = new ArrayList<>();
|
||||
|
||||
pluginRef.getTextComponentFactory().getSubSkillTextComponents(player, textComponents, PrimarySkillType.WOODCUTTING);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,113 +0,0 @@
|
||||
package com.gmail.nossr50.config;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Constants relating to config folders and paths
|
||||
*/
|
||||
public class ConfigConstants {
|
||||
public final static ArrayList<String> EXAMPLE_BLACKLIST_WORLDS_LIST_DEFAULT;
|
||||
public final static String SKILL_SCALING_BENEFIT_EXPLANATION = "\nSub-Skills dynamically adjust their rewards to match the max bonus level, you can think of it as a curve that calculates what bonuses " +
|
||||
"\n a player should have based on how far they are from the max bonus level value, and the other parameters used for the scaling of that sub-skill.";
|
||||
/* FOLDER NAMES */
|
||||
public static final String FOLDER_NAME_CONFIG = "config";
|
||||
public static final String FOLDER_NAME_SKILLS = "skills";
|
||||
public static final String FOLDER_NAME_EXPERIENCE = "Experience Settings";
|
||||
public static final String FOLDER_NAME_DEFAULTS = "defaults";
|
||||
|
||||
/* RELATIVE PATHS */
|
||||
public final static String RELATIVE_PATH_CONFIG_DIR = File.separator + FOLDER_NAME_CONFIG + File.separator;
|
||||
public final static String RELATIVE_PATH_SKILLS_DIR = RELATIVE_PATH_CONFIG_DIR + FOLDER_NAME_SKILLS + File.separator;
|
||||
public final static String RELATIVE_PATH_XP_DIR = RELATIVE_PATH_CONFIG_DIR + FOLDER_NAME_EXPERIENCE + File.separator;
|
||||
private final static String[] EXAMPLE_BLACKLIST_WORLDS = {"Example_15434453", "Example_2324423", "Example_323423465"};
|
||||
|
||||
/* Field Names & Comments */
|
||||
public static final String SUB_SKILL_NODE = "Sub-Skill";
|
||||
public final static String MAX_CHANCE_FIELD_NAME = "Max-Chance";
|
||||
public final static String STATIC_ACTIVATION_FIELD_NAME = "Activation-Chance";
|
||||
public final static String MAX_BONUS_LEVEL_FIELD_NAME = "Max-Bonus-Level";
|
||||
public final static String MAX_BONUS_LEVEL_DESCRIPTION = "This is the level at which full benefits for this skill will be reached." +
|
||||
"\nProperties of this skill may or may not scale with level, but those that do will gradually increase until max level is achieved.";
|
||||
public final static String MAX_BONUS_PERCENTAGE_FIELD_NAME = "Max-Bonus-Percentage";
|
||||
public final static String MAX_CHANCE_FIELD_DESCRIPTION = "The maximum probability for this skill to succeed.";
|
||||
|
||||
//Add the worlds to the list
|
||||
static {
|
||||
EXAMPLE_BLACKLIST_WORLDS_LIST_DEFAULT = new ArrayList<>();
|
||||
EXAMPLE_BLACKLIST_WORLDS_LIST_DEFAULT.add(EXAMPLE_BLACKLIST_WORLDS[0]);
|
||||
EXAMPLE_BLACKLIST_WORLDS_LIST_DEFAULT.add(EXAMPLE_BLACKLIST_WORLDS[1]);
|
||||
EXAMPLE_BLACKLIST_WORLDS_LIST_DEFAULT.add(EXAMPLE_BLACKLIST_WORLDS[2]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the data folder for mcMMO
|
||||
*
|
||||
* @return the File for the data folder used by mcMMO
|
||||
*/
|
||||
public static File getDataFolder(mcMMO pluginRef) {
|
||||
return pluginRef.getDataFolder();
|
||||
}
|
||||
|
||||
public static File getConfigFolder(mcMMO pluginRef) {
|
||||
return new File(getDataFolder(pluginRef), FOLDER_NAME_CONFIG);
|
||||
}
|
||||
|
||||
public static File getDefaultsFolder(mcMMO pluginRef) {
|
||||
return new File(getConfigFolder(pluginRef).getAbsolutePath(), FOLDER_NAME_DEFAULTS);
|
||||
}
|
||||
|
||||
public static File getDefaultsConfigFolder(mcMMO pluginRef) {
|
||||
return new File(getDefaultsFolder(pluginRef).getAbsolutePath(), FOLDER_NAME_CONFIG);
|
||||
}
|
||||
|
||||
public static File getDefaultsSkillFolder(mcMMO pluginRef) {
|
||||
return new File(getDefaultsConfigFolder(pluginRef).getAbsolutePath(), FOLDER_NAME_SKILLS);
|
||||
}
|
||||
|
||||
public static File getDefaultsXPFolder(mcMMO pluginRef) {
|
||||
return new File(getDefaultsConfigFolder(pluginRef).getAbsolutePath(), FOLDER_NAME_EXPERIENCE);
|
||||
}
|
||||
|
||||
public static File getConfigSkillFolder(mcMMO pluginRef) {
|
||||
return new File(getConfigFolder(pluginRef).getAbsolutePath(), FOLDER_NAME_SKILLS);
|
||||
}
|
||||
|
||||
public static File getConfigXPFolder(mcMMO pluginRef) {
|
||||
return new File(getConfigFolder(pluginRef).getAbsolutePath(), FOLDER_NAME_EXPERIENCE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates all directories used by mcMMO config files
|
||||
*/
|
||||
public static void makeAllConfigDirectories(mcMMO pluginRef) {
|
||||
/* CONFIG DIRECTORY */
|
||||
|
||||
if (!getConfigFolder(pluginRef).exists())
|
||||
getConfigFolder(pluginRef).mkdirs();
|
||||
|
||||
/* DEFAULT DIRECTORIES */
|
||||
|
||||
if (!getDefaultsFolder(pluginRef).exists())
|
||||
getDefaultsFolder(pluginRef).mkdirs();
|
||||
|
||||
if (!getDefaultsConfigFolder(pluginRef).exists())
|
||||
getDefaultsConfigFolder(pluginRef).mkdirs();
|
||||
|
||||
if (!getDefaultsSkillFolder(pluginRef).exists())
|
||||
getDefaultsSkillFolder(pluginRef).mkdirs();
|
||||
|
||||
if (!getDefaultsXPFolder(pluginRef).exists())
|
||||
getDefaultsXPFolder(pluginRef).mkdirs();
|
||||
|
||||
/* CONFIG SUBDIRECTORIES */
|
||||
|
||||
if (!getConfigSkillFolder(pluginRef).exists())
|
||||
getConfigSkillFolder(pluginRef).mkdirs();
|
||||
|
||||
if (!getConfigXPFolder(pluginRef).exists())
|
||||
getConfigXPFolder(pluginRef).mkdirs();
|
||||
}
|
||||
}
|
||||
@@ -1,491 +0,0 @@
|
||||
package com.gmail.nossr50.config;
|
||||
|
||||
import com.gmail.nossr50.config.admin.ConfigAdmin;
|
||||
import com.gmail.nossr50.config.antiexploit.ConfigExploitPrevention;
|
||||
import com.gmail.nossr50.config.backup.ConfigAutomatedBackups;
|
||||
import com.gmail.nossr50.config.commands.ConfigCommands;
|
||||
import com.gmail.nossr50.config.database.ConfigDatabase;
|
||||
import com.gmail.nossr50.config.donation.ConfigAuthorAdvertisements;
|
||||
import com.gmail.nossr50.config.event.ConfigEvent;
|
||||
import com.gmail.nossr50.config.experience.ConfigExperience;
|
||||
import com.gmail.nossr50.config.hardcore.ConfigHardcore;
|
||||
import com.gmail.nossr50.config.items.ConfigItems;
|
||||
import com.gmail.nossr50.config.language.ConfigLanguage;
|
||||
import com.gmail.nossr50.config.metrics.ConfigMetrics;
|
||||
import com.gmail.nossr50.config.mobs.ConfigMobs;
|
||||
import com.gmail.nossr50.config.motd.ConfigMOTD;
|
||||
import com.gmail.nossr50.config.notifications.ConfigNotifications;
|
||||
import com.gmail.nossr50.config.notifications.PlayerNotificationSettings;
|
||||
import com.gmail.nossr50.config.particles.ConfigParticles;
|
||||
import com.gmail.nossr50.config.party.ConfigParty;
|
||||
import com.gmail.nossr50.config.party.data.ConfigPartyData;
|
||||
import com.gmail.nossr50.config.playerleveling.ConfigLeveling;
|
||||
import com.gmail.nossr50.config.scoreboard.ConfigScoreboard;
|
||||
import com.gmail.nossr50.config.serializers.*;
|
||||
import com.gmail.nossr50.config.skills.acrobatics.ConfigAcrobatics;
|
||||
import com.gmail.nossr50.config.skills.alchemy.ConfigAlchemy;
|
||||
import com.gmail.nossr50.config.skills.archery.ConfigArchery;
|
||||
import com.gmail.nossr50.config.skills.axes.ConfigAxes;
|
||||
import com.gmail.nossr50.config.skills.coreskills.ConfigCoreSkills;
|
||||
import com.gmail.nossr50.config.skills.exampleconfigs.ConfigNameRegisterDefaults;
|
||||
import com.gmail.nossr50.config.skills.exampleconfigs.MinecraftMaterialWrapper;
|
||||
import com.gmail.nossr50.config.skills.excavation.ConfigExcavation;
|
||||
import com.gmail.nossr50.config.skills.fishing.ConfigFishing;
|
||||
import com.gmail.nossr50.config.skills.herbalism.ConfigHerbalism;
|
||||
import com.gmail.nossr50.config.skills.mining.ConfigMining;
|
||||
import com.gmail.nossr50.config.skills.ranks.ConfigRanks;
|
||||
import com.gmail.nossr50.config.skills.ranks.SkillRankProperty;
|
||||
import com.gmail.nossr50.config.skills.repair.ConfigRepair;
|
||||
import com.gmail.nossr50.config.skills.salvage.ConfigSalvage;
|
||||
import com.gmail.nossr50.config.skills.smelting.ConfigSmelting;
|
||||
import com.gmail.nossr50.config.skills.swords.ConfigSwords;
|
||||
import com.gmail.nossr50.config.skills.taming.ConfigTaming;
|
||||
import com.gmail.nossr50.config.skills.unarmed.ConfigUnarmed;
|
||||
import com.gmail.nossr50.config.skills.woodcutting.ConfigWoodcutting;
|
||||
import com.gmail.nossr50.config.sound.ConfigSound;
|
||||
import com.gmail.nossr50.config.sound.SoundSetting;
|
||||
import com.gmail.nossr50.config.superabilities.ConfigSuperAbilities;
|
||||
import com.gmail.nossr50.config.worldblacklist.ConfigWorldBlacklist;
|
||||
import com.gmail.nossr50.datatypes.experience.CustomXPPerk;
|
||||
import com.gmail.nossr50.datatypes.experience.FormulaType;
|
||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.datatypes.skills.properties.DamageProperty;
|
||||
import com.gmail.nossr50.datatypes.skills.subskills.taming.CallOfTheWildType;
|
||||
import com.gmail.nossr50.datatypes.skills.subskills.taming.TamingSummon;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.skills.salvage.salvageables.Salvageable;
|
||||
import com.google.common.reflect.TypeToken;
|
||||
import ninja.leaping.configurate.commented.CommentedConfigurationNode;
|
||||
import ninja.leaping.configurate.objectmapping.serialize.TypeSerializerCollection;
|
||||
import ninja.leaping.configurate.objectmapping.serialize.TypeSerializers;
|
||||
import org.bukkit.Material;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* The Config Manager handles initializing, loading, and unloading registers for all configs that mcMMO uses
|
||||
* This makes sure that mcMMO properly loads and unloads its values on reload
|
||||
* Settings in configs are sometimes not platform-ready, you can find platform ready implementations in the {@link com.gmail.nossr50.core.DynamicSettingsManager DynamicSettingsManager}
|
||||
*/
|
||||
public final class ConfigManager {
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
|
||||
/* File array - Used for backups */
|
||||
private ArrayList<File> userFiles;
|
||||
|
||||
/* Custom Serialization */
|
||||
private TypeSerializerCollection customSerializers;
|
||||
|
||||
/* CONFIG INSTANCES */
|
||||
|
||||
private SerializedConfigLoader<ConfigDatabase> configDatabase;
|
||||
private SerializedConfigLoader<ConfigScoreboard> configScoreboard;
|
||||
private SerializedConfigLoader<ConfigLeveling> configLeveling;
|
||||
private SerializedConfigLoader<ConfigWorldBlacklist> configWorldBlacklist;
|
||||
private SerializedConfigLoader<ConfigExploitPrevention> configExploitPrevention;
|
||||
private SerializedConfigLoader<ConfigHardcore> configHardcore;
|
||||
private SerializedConfigLoader<ConfigMetrics> configMetrics;
|
||||
private SerializedConfigLoader<ConfigMOTD> configMOTD;
|
||||
private SerializedConfigLoader<ConfigAuthorAdvertisements> configAuthorAdvertisements;
|
||||
private SerializedConfigLoader<ConfigAutomatedBackups> configAutomatedBackups;
|
||||
private SerializedConfigLoader<ConfigCommands> configCommands;
|
||||
private SerializedConfigLoader<ConfigItems> configItems;
|
||||
private SerializedConfigLoader<ConfigLanguage> configLanguage;
|
||||
private SerializedConfigLoader<ConfigParticles> configParticles;
|
||||
private SerializedConfigLoader<ConfigParty> configParty;
|
||||
private SerializedConfigLoader<ConfigNotifications> configNotifications;
|
||||
private SerializedConfigLoader<ConfigSuperAbilities> configSuperAbilities;
|
||||
private SerializedConfigLoader<ConfigAdmin> configAdmin;
|
||||
private SerializedConfigLoader<ConfigMobs> configMobs;
|
||||
private SerializedConfigLoader<ConfigExperience> configExperience;
|
||||
private SerializedConfigLoader<ConfigCoreSkills> configCoreSkills;
|
||||
private SerializedConfigLoader<ConfigEvent> configEvent;
|
||||
private SerializedConfigLoader<ConfigRanks> configRanks;
|
||||
private SerializedConfigLoader<ConfigSound> configSound;
|
||||
private SerializedConfigLoader<ConfigNameRegisterDefaults> configDefaultExamples;
|
||||
|
||||
private ConfigAcrobatics configAcrobatics;
|
||||
private ConfigAlchemy configAlchemy;
|
||||
private ConfigArchery configArchery;
|
||||
private ConfigAxes configAxes;
|
||||
private ConfigExcavation configExcavation;
|
||||
private ConfigFishing configFishing;
|
||||
private ConfigHerbalism configHerbalism;
|
||||
private ConfigMining configMining;
|
||||
private ConfigRepair configRepair;
|
||||
private ConfigSwords configSwords;
|
||||
private ConfigTaming configTaming;
|
||||
private ConfigUnarmed configUnarmed;
|
||||
private ConfigWoodcutting configWoodcutting;
|
||||
private ConfigSmelting configSmelting;
|
||||
private ConfigSalvage configSalvage;
|
||||
|
||||
private HashMap<PrimarySkillType, SerializedConfigLoader<?>> skillConfigLoaders;
|
||||
|
||||
//Data
|
||||
private SerializedConfigLoader<ConfigPartyData> partyData;
|
||||
|
||||
public ConfigManager(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
userFiles = new ArrayList<>();
|
||||
}
|
||||
|
||||
public void loadConfigs() {
|
||||
//Register Custom Serializers
|
||||
registerCustomTypeSerializers();
|
||||
|
||||
//Serialized Configs
|
||||
initSerializedConfigs();
|
||||
|
||||
//Serialized Data
|
||||
initSerializedDataFiles();
|
||||
}
|
||||
|
||||
private void initSerializedDataFiles() {
|
||||
partyData = new SerializedConfigLoader<>(pluginRef, ConfigPartyData.class, "partydata.conf", "PartyData", null);
|
||||
}
|
||||
|
||||
private void initSerializedConfigs() {
|
||||
//There's some race conditions here because mcMMO is goddamn spaghetti mess, language has to load first
|
||||
configLanguage = new SerializedConfigLoader<>(pluginRef, ConfigLanguage.class, "language.conf", "Language", null);
|
||||
|
||||
/*
|
||||
* No more race conditions
|
||||
*/
|
||||
|
||||
configDatabase = new SerializedConfigLoader<>(pluginRef, ConfigDatabase.class, "database_settings.conf", "Database", null);
|
||||
configScoreboard = new SerializedConfigLoader<>(pluginRef, ConfigScoreboard.class, "scoreboard.conf", "Scoreboard", null);
|
||||
configLeveling = new SerializedConfigLoader<>(pluginRef, ConfigLeveling.class, "player_leveling.conf", "Player-Leveling", null);
|
||||
configWorldBlacklist = new SerializedConfigLoader<>(pluginRef, ConfigWorldBlacklist.class, "world_blacklist.conf", "World-Blacklist", null);
|
||||
configExploitPrevention = new SerializedConfigLoader<>(pluginRef, ConfigExploitPrevention.class, "anti_exploit.conf", "Anti-Exploit", null);
|
||||
configMOTD = new SerializedConfigLoader<>(pluginRef, ConfigMOTD.class, "message_of_the_day.conf", "MOTD", null);
|
||||
configHardcore = new SerializedConfigLoader<>(pluginRef, ConfigHardcore.class, "hardcore_mode.conf", "Hardcore-Mode", null);
|
||||
configMetrics = new SerializedConfigLoader<>(pluginRef, ConfigMetrics.class, "analytics_reporting.conf", "Analytic-Reporting", null);
|
||||
configAuthorAdvertisements = new SerializedConfigLoader<>(pluginRef, ConfigAuthorAdvertisements.class, "author_support_advertisements.conf", "mcMMO", null);
|
||||
configAutomatedBackups = new SerializedConfigLoader<>(pluginRef, ConfigAutomatedBackups.class, "automated_backups.conf", "Automated-Backups", null);
|
||||
configCommands = new SerializedConfigLoader<>(pluginRef, ConfigCommands.class, "commands.conf", "Commands", null);
|
||||
configItems = new SerializedConfigLoader<>(pluginRef, ConfigItems.class, "custom_items.conf", "Items", null);
|
||||
configParticles = new SerializedConfigLoader<>(pluginRef, ConfigParticles.class, "particle_spawning.conf", "Particles", null);
|
||||
configParty = new SerializedConfigLoader<>(pluginRef, ConfigParty.class, "party.conf", "Party", null);
|
||||
configNotifications = new SerializedConfigLoader<>(pluginRef, ConfigNotifications.class, "alerts_and_notifications.conf", "Notifications", null);
|
||||
configSuperAbilities = new SerializedConfigLoader<>(pluginRef, ConfigSuperAbilities.class, "skill_super_abilities.conf", "Super-Abilities", null);
|
||||
configAdmin = new SerializedConfigLoader<>(pluginRef, ConfigAdmin.class, "admin.conf", "Admin", null);
|
||||
configMobs = new SerializedConfigLoader<>(pluginRef, ConfigMobs.class, "creatures.conf", "Creatures", null);
|
||||
configExperience = new SerializedConfigLoader<>(pluginRef, ConfigExperience.class, "experience.conf", "Experience", null);
|
||||
configCoreSkills = new SerializedConfigLoader<>(pluginRef, ConfigCoreSkills.class, "core_skills.conf", "Core-Skills", null);
|
||||
configEvent = new SerializedConfigLoader<>(pluginRef, ConfigEvent.class, "events.conf", "Events", null);
|
||||
configRanks = new SerializedConfigLoader<>(pluginRef, ConfigRanks.class, "ranks.conf", "Skill-Ranks", null);
|
||||
configSound = new SerializedConfigLoader<>(pluginRef, ConfigSound.class, "sounds.conf", "Sounds", null);
|
||||
|
||||
configDefaultExamples = new SerializedConfigLoader<>(pluginRef, ConfigNameRegisterDefaults.class, "minecraft_item_block_name_examples.conf", "Minecraft", null);
|
||||
initSerializedSkillConfigs();
|
||||
}
|
||||
|
||||
@SuppressWarnings(value = "unchecked")
|
||||
private void initSerializedSkillConfigs() {
|
||||
//Init HashMap
|
||||
skillConfigLoaders = new HashMap<>();
|
||||
|
||||
//Init and register serialized skill configs
|
||||
registerSkillConfig(PrimarySkillType.ACROBATICS, ConfigAcrobatics.class);
|
||||
registerSkillConfig(PrimarySkillType.ALCHEMY, ConfigAlchemy.class);
|
||||
registerSkillConfig(PrimarySkillType.SALVAGE, ConfigSalvage.class);
|
||||
registerSkillConfig(PrimarySkillType.ARCHERY, ConfigArchery.class);
|
||||
registerSkillConfig(PrimarySkillType.AXES, ConfigAxes.class);
|
||||
registerSkillConfig(PrimarySkillType.EXCAVATION, ConfigExcavation.class);
|
||||
registerSkillConfig(PrimarySkillType.FISHING, ConfigFishing.class);
|
||||
registerSkillConfig(PrimarySkillType.HERBALISM, ConfigHerbalism.class);
|
||||
registerSkillConfig(PrimarySkillType.MINING, ConfigMining.class);
|
||||
registerSkillConfig(PrimarySkillType.REPAIR, ConfigRepair.class);
|
||||
registerSkillConfig(PrimarySkillType.SWORDS, ConfigSwords.class);
|
||||
registerSkillConfig(PrimarySkillType.TAMING, ConfigTaming.class);
|
||||
registerSkillConfig(PrimarySkillType.UNARMED, ConfigUnarmed.class);
|
||||
registerSkillConfig(PrimarySkillType.WOODCUTTING, ConfigWoodcutting.class);
|
||||
registerSkillConfig(PrimarySkillType.SMELTING, ConfigSmelting.class);
|
||||
|
||||
//Setup Typed refs
|
||||
configAcrobatics = (ConfigAcrobatics) skillConfigLoaders.get(PrimarySkillType.ACROBATICS).getConfig();
|
||||
configAlchemy = (ConfigAlchemy) skillConfigLoaders.get(PrimarySkillType.ALCHEMY).getConfig();
|
||||
configSalvage = (ConfigSalvage) skillConfigLoaders.get(PrimarySkillType.SALVAGE).getConfig();
|
||||
configArchery = (ConfigArchery) skillConfigLoaders.get(PrimarySkillType.ARCHERY).getConfig();
|
||||
configAxes = (ConfigAxes) skillConfigLoaders.get(PrimarySkillType.AXES).getConfig();
|
||||
configExcavation = (ConfigExcavation) skillConfigLoaders.get(PrimarySkillType.EXCAVATION).getConfig();
|
||||
configFishing = (ConfigFishing) skillConfigLoaders.get(PrimarySkillType.FISHING).getConfig();
|
||||
configHerbalism = (ConfigHerbalism) skillConfigLoaders.get(PrimarySkillType.HERBALISM).getConfig();
|
||||
configMining = (ConfigMining) skillConfigLoaders.get(PrimarySkillType.MINING).getConfig();
|
||||
configRepair = (ConfigRepair) skillConfigLoaders.get(PrimarySkillType.REPAIR).getConfig();
|
||||
configSwords = (ConfigSwords) skillConfigLoaders.get(PrimarySkillType.SWORDS).getConfig();
|
||||
configTaming = (ConfigTaming) skillConfigLoaders.get(PrimarySkillType.TAMING).getConfig();
|
||||
configUnarmed = (ConfigUnarmed) skillConfigLoaders.get(PrimarySkillType.UNARMED).getConfig();
|
||||
configWoodcutting = (ConfigWoodcutting) skillConfigLoaders.get(PrimarySkillType.WOODCUTTING).getConfig();
|
||||
configSmelting = (ConfigSmelting) skillConfigLoaders.get(PrimarySkillType.SMELTING).getConfig();
|
||||
}
|
||||
|
||||
private void registerCustomTypeSerializers() {
|
||||
/*
|
||||
TypeTokens are obtained in two ways
|
||||
|
||||
For Raw basic classes:
|
||||
|
||||
TypeToken<String> stringTok = TypeToken.of(String.class);
|
||||
TypeToken<Integer> intTok = TypeToken.of(Integer.class);
|
||||
|
||||
For Generics:
|
||||
|
||||
TypeToken<List<String>> stringListTok = new TypeToken<List<String>>() {};
|
||||
|
||||
Wildcard example:
|
||||
|
||||
TypeToken<Map<?, ?>> wildMapTok = new TypeToken<Map<?, ?>>() {};
|
||||
|
||||
*/
|
||||
customSerializers = TypeSerializers.getDefaultSerializers().newChild();
|
||||
|
||||
pluginRef.getLogger().info("Registering custom type serializers for Configurate...");
|
||||
customSerializers.registerType(new TypeToken<PrimarySkillType>() {}, new CustomEnumValueSerializer());
|
||||
customSerializers.registerType(new TypeToken<Material>() {}, new CustomEnumValueSerializer());
|
||||
customSerializers.registerType(new TypeToken<PartyFeature>() {}, new CustomEnumValueSerializer());
|
||||
customSerializers.registerType(new TypeToken<FormulaType>() {}, new CustomEnumValueSerializer());
|
||||
customSerializers.registerType(new TypeToken<CallOfTheWildType>() {}, new CustomEnumValueSerializer());
|
||||
// customSerializers.registerType(new TypeToken<MMOItem<?>>() {}, new ItemStackSerializer());
|
||||
customSerializers.registerType(new TypeToken<Set<?>>() {}, new SetSerializer());
|
||||
|
||||
// customSerializers.registerType(new TypeToken<ItemMatch<?>>() {}, new CustomItemTargetSerializer());
|
||||
// customSerializers.registerType(new TypeToken<SimpleRepairCost>() {}, new SimpleRepairCostSerializer());
|
||||
|
||||
customSerializers.registerType(TypeToken.of(TamingSummon.class), new TamingSummonSerializer());
|
||||
// customSerializers.registerType(TypeToken.of(Repairable.class), new RepairableSerializer());
|
||||
customSerializers.registerType(TypeToken.of(Salvageable.class), new SalvageableSerializer());
|
||||
customSerializers.registerType(TypeToken.of(MinecraftMaterialWrapper.class), new MinecraftMaterialWrapperSerializer());
|
||||
customSerializers.registerType(TypeToken.of(CustomXPPerk.class), new CustomXPPerkSerializer());
|
||||
customSerializers.registerType(TypeToken.of(DamageProperty.class), new DamagePropertySerializer());
|
||||
customSerializers.registerType(TypeToken.of(SkillRankProperty.class), new SkillRankPropertySerializer());
|
||||
customSerializers.registerType(TypeToken.of(PlayerNotificationSettings.class), new PlayerNotificationSerializer());
|
||||
customSerializers.registerType(TypeToken.of(SoundSetting.class), new SoundSettingSerializer());
|
||||
// customSerializers.registerType(TypeToken.of(ItemWildcards.class), new ItemWildcardSerializer());
|
||||
// customSerializers.registerType(TypeToken.of(RepairTransaction.class), new RepairTransactionSerializer());
|
||||
// customSerializers.registerType(TypeToken.of(RawNBT.class), new RawNBTSerializer());
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the serializers registered and used by mcMMO
|
||||
* This includes all default serializers
|
||||
*
|
||||
* @return our custom serializers
|
||||
*/
|
||||
public TypeSerializerCollection getCustomSerializers() {
|
||||
return customSerializers;
|
||||
}
|
||||
|
||||
private void registerSkillConfig(PrimarySkillType primarySkillType, Class clazz) {
|
||||
skillConfigLoaders.put(primarySkillType, SkillConfigFactory.initSkillConfig(pluginRef, primarySkillType, clazz));
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers an unloadable
|
||||
* Unloadables call unload() on plugin disable to cleanup registries
|
||||
*/
|
||||
public void registerUserFile(File userFile) {
|
||||
if (!userFiles.contains(userFile))
|
||||
userFiles.add(userFile);
|
||||
}
|
||||
|
||||
public void validateConfigs() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Reload the configs
|
||||
* Technically this reloads a lot of stuff, not just configs
|
||||
*/
|
||||
public void reloadConfigs() {
|
||||
pluginRef.getLogger().info("Reloading config values...");
|
||||
loadConfigs(); //Load everything again
|
||||
}
|
||||
|
||||
/*
|
||||
* GETTER BOILER PLATE
|
||||
*/
|
||||
|
||||
/**
|
||||
* Used to back up our zip files real easily
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public ArrayList<File> getConfigFiles() {
|
||||
return userFiles;
|
||||
}
|
||||
|
||||
public ConfigCoreSkills getConfigCoreSkills() {
|
||||
return configCoreSkills.getConfig();
|
||||
}
|
||||
|
||||
public ConfigDatabase getConfigDatabase() {
|
||||
return configDatabase.getConfig();
|
||||
}
|
||||
|
||||
public ConfigScoreboard getConfigScoreboard() {
|
||||
return configScoreboard.getConfig();
|
||||
}
|
||||
|
||||
public ConfigLeveling getConfigLeveling() {
|
||||
return configLeveling.getConfig();
|
||||
}
|
||||
|
||||
public ConfigWorldBlacklist getConfigWorldBlacklist() {
|
||||
return configWorldBlacklist.getConfig();
|
||||
}
|
||||
|
||||
public ConfigExploitPrevention getConfigExploitPrevention() {
|
||||
return configExploitPrevention.getConfig();
|
||||
}
|
||||
|
||||
public ConfigMOTD getConfigMOTD() {
|
||||
return configMOTD.getConfig();
|
||||
}
|
||||
|
||||
public ConfigHardcore getConfigHardcore() {
|
||||
return configHardcore.getConfig();
|
||||
}
|
||||
|
||||
public ConfigMetrics getConfigMetrics() {
|
||||
return configMetrics.getConfig();
|
||||
}
|
||||
|
||||
public ConfigAuthorAdvertisements getConfigAds() {
|
||||
return configAuthorAdvertisements.getConfig();
|
||||
}
|
||||
|
||||
public ConfigAutomatedBackups getConfigAutomatedBackups() {
|
||||
return configAutomatedBackups.getConfig();
|
||||
}
|
||||
|
||||
public ConfigCommands getConfigCommands() {
|
||||
return configCommands.getConfig();
|
||||
}
|
||||
|
||||
public ConfigItems getConfigItems() {
|
||||
return configItems.getConfig();
|
||||
}
|
||||
|
||||
public ConfigLanguage getConfigLanguage() {
|
||||
return configLanguage.getConfig();
|
||||
}
|
||||
|
||||
public ConfigParticles getConfigParticles() {
|
||||
return configParticles.getConfig();
|
||||
}
|
||||
|
||||
public ConfigParty getConfigParty() {
|
||||
return configParty.getConfig();
|
||||
}
|
||||
|
||||
public ConfigNotifications getConfigNotifications() {
|
||||
return configNotifications.getConfig();
|
||||
}
|
||||
|
||||
public ConfigSuperAbilities getConfigSuperAbilities() {
|
||||
return configSuperAbilities.getConfig();
|
||||
}
|
||||
|
||||
public ConfigAdmin getConfigAdmin() {
|
||||
return configAdmin.getConfig();
|
||||
}
|
||||
|
||||
public ConfigMobs getConfigMobs() {
|
||||
return configMobs.getConfig();
|
||||
}
|
||||
|
||||
public ConfigAcrobatics getConfigAcrobatics() {
|
||||
return configAcrobatics;
|
||||
}
|
||||
|
||||
public ConfigAlchemy getConfigAlchemy() {
|
||||
return configAlchemy;
|
||||
}
|
||||
|
||||
public ConfigArchery getConfigArchery() {
|
||||
return configArchery;
|
||||
}
|
||||
|
||||
public ConfigAxes getConfigAxes() {
|
||||
return configAxes;
|
||||
}
|
||||
|
||||
public ConfigExcavation getConfigExcavation() {
|
||||
return configExcavation;
|
||||
}
|
||||
|
||||
public ConfigFishing getConfigFishing() {
|
||||
return configFishing;
|
||||
}
|
||||
|
||||
public ConfigHerbalism getConfigHerbalism() {
|
||||
return configHerbalism;
|
||||
}
|
||||
|
||||
public ConfigMining getConfigMining() {
|
||||
return configMining;
|
||||
}
|
||||
|
||||
public ConfigRepair getConfigRepair() {
|
||||
return configRepair;
|
||||
}
|
||||
|
||||
public ConfigSwords getConfigSwords() {
|
||||
return configSwords;
|
||||
}
|
||||
|
||||
public ConfigTaming getConfigTaming() {
|
||||
return configTaming;
|
||||
}
|
||||
|
||||
public ConfigUnarmed getConfigUnarmed() {
|
||||
return configUnarmed;
|
||||
}
|
||||
|
||||
public ConfigWoodcutting getConfigWoodcutting() {
|
||||
return configWoodcutting;
|
||||
}
|
||||
|
||||
public ConfigSmelting getConfigSmelting() {
|
||||
return configSmelting;
|
||||
}
|
||||
|
||||
public ConfigSalvage getConfigSalvage() {
|
||||
return configSalvage;
|
||||
}
|
||||
|
||||
public ConfigEvent getConfigEvent() {
|
||||
return configEvent.getConfig();
|
||||
}
|
||||
|
||||
public ConfigRanks getConfigRanks() {
|
||||
return configRanks.getConfig();
|
||||
}
|
||||
|
||||
public ConfigSound getConfigSound() {
|
||||
return configSound.getConfig();
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to programmatically grab rank data for skills
|
||||
* @return root node for the ranks config file
|
||||
*/
|
||||
public CommentedConfigurationNode getConfigRanksRootNode() {
|
||||
return configRanks.getRootNode();
|
||||
}
|
||||
|
||||
public ConfigExperience getConfigExperience() {
|
||||
return configExperience.getConfig();
|
||||
}
|
||||
|
||||
public SerializedConfigLoader<?> getSkillConfigLoader(PrimarySkillType primarySkillType) {
|
||||
return skillConfigLoaders.get(primarySkillType);
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user