mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2026-02-18 17:53:00 +01:00
Compare commits
861 Commits
dev-comman
...
l10n_maste
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5a8b96a284 | ||
|
|
a413cb88d5 | ||
|
|
0f42336b81 | ||
|
|
66ab95adb9 | ||
|
|
a35e01f959 | ||
|
|
d6c17e964c | ||
|
|
1a72eb40cb | ||
|
|
1f5caa7daa | ||
|
|
3ef0ef271f | ||
|
|
47712ac36d | ||
|
|
0b23ed3780 | ||
|
|
3717e5defe | ||
|
|
5935ff5c31 | ||
|
|
90d449207a | ||
|
|
32aed9b444 | ||
|
|
6c9934fac1 | ||
|
|
98cde1be65 | ||
|
|
1b91a1b902 | ||
|
|
bc289cb878 | ||
|
|
b770599313 | ||
|
|
a78b248bcb | ||
|
|
009591937a | ||
|
|
61aa527785 | ||
|
|
d3208d9548 | ||
|
|
a220568380 | ||
|
|
dfcb3fc869 | ||
|
|
5a78e752d4 | ||
|
|
fb3de37fad | ||
|
|
d13c79cadb | ||
|
|
8ad1fd4e1a | ||
|
|
01a7aa4d12 | ||
|
|
6dc75760d0 | ||
|
|
fe90f1e7eb | ||
|
|
54cf356b71 | ||
|
|
4669e3e54d | ||
|
|
f4ead570d4 | ||
|
|
b34f3a1779 | ||
|
|
85e1f2eb7e | ||
|
|
6136e82ec6 | ||
|
|
ebec5d6f70 | ||
|
|
336e41b40c | ||
|
|
bec088c969 | ||
|
|
17f1062e96 | ||
|
|
92495ae9df | ||
|
|
b9c8743ee3 | ||
|
|
0d260a74c9 | ||
|
|
35368db05d | ||
|
|
5e6e8d7248 | ||
|
|
d50238caf1 | ||
|
|
164d429acc | ||
|
|
a316bb7bd2 | ||
|
|
55a4238030 | ||
|
|
f9f2a0d691 | ||
|
|
3831ca6b0f | ||
|
|
7a6b8e3156 | ||
|
|
93d10c0739 | ||
|
|
24e4c28355 | ||
|
|
6ec61ecb76 | ||
|
|
55a69006bf | ||
|
|
8a02230fd2 | ||
|
|
2a26b016d9 | ||
|
|
7be5b4ecbd | ||
|
|
565fb35217 | ||
|
|
d2b8c527ad | ||
|
|
2cdb17d64f | ||
|
|
96f06ca812 | ||
|
|
685f6d76a8 | ||
|
|
840cfbe94d | ||
|
|
605535ed60 | ||
|
|
71c72045b9 | ||
|
|
eb930883fa | ||
|
|
30ed18eb95 | ||
|
|
8508f5b8b8 | ||
|
|
dfab223eb2 | ||
|
|
dd82fa0791 | ||
|
|
af8d2dc2c7 | ||
|
|
9f9529debf | ||
|
|
495c4a33e5 | ||
|
|
203d3749ee | ||
|
|
1fcecbd3e7 | ||
|
|
d778616b2c | ||
|
|
4bdd97a302 | ||
|
|
ab2a031ee0 | ||
|
|
5663b71387 | ||
|
|
2a43bce849 | ||
|
|
592c3a2142 | ||
|
|
e9ca341476 | ||
|
|
76617c8a61 | ||
|
|
10ff097232 | ||
|
|
1e043d481a | ||
|
|
7f8c670dc1 | ||
|
|
0e536a2cb3 | ||
|
|
090cf82a39 | ||
|
|
6e60f39f82 | ||
|
|
b8078e4730 | ||
|
|
e08fe64db2 | ||
|
|
2b576568a7 | ||
|
|
e2edbaad34 | ||
|
|
184b98bbdc | ||
|
|
7cc604dbdb | ||
|
|
44ed35825f | ||
|
|
22833eea6c | ||
|
|
64dfc1e3d3 | ||
|
|
6619ca1d22 | ||
|
|
2f2a80e1ce | ||
|
|
fa1bbd2031 | ||
|
|
a39a77f89e | ||
|
|
7800e48f61 | ||
|
|
63378ae4c1 | ||
|
|
fecf83c79c | ||
|
|
f287b6d8a7 | ||
|
|
9082658357 | ||
|
|
4bda175328 | ||
|
|
ee324c77a9 | ||
|
|
210b418e44 | ||
|
|
b73eced36f | ||
|
|
6296a6adde | ||
|
|
99f6192965 | ||
|
|
bff454f397 | ||
|
|
8216dbe355 | ||
|
|
fbe26af2d7 | ||
|
|
0a1559511a | ||
|
|
aee60f2c09 | ||
|
|
9ce850f84f | ||
|
|
cbff8482ce | ||
|
|
0035762a71 | ||
|
|
3d515aab23 | ||
|
|
e77801f3c1 | ||
|
|
c83d011faa | ||
|
|
5aa4949baa | ||
|
|
906ead53dd | ||
|
|
cbcdedc67a | ||
|
|
c87b410823 | ||
|
|
0a447f68c6 | ||
|
|
e98d241452 | ||
|
|
421455224f | ||
|
|
29c55312a5 | ||
|
|
6c474c8838 | ||
|
|
03182ea24c | ||
|
|
2c6543da9e | ||
|
|
20bbdfc4ab | ||
|
|
5b2ebf4aa8 | ||
|
|
2b159adefd | ||
|
|
be2de1d487 | ||
|
|
6876f192de | ||
|
|
875db44afd | ||
|
|
2e120abe3a | ||
|
|
feeb17d6f0 | ||
|
|
6d2003d577 | ||
|
|
40b609ccd8 | ||
|
|
d64399df49 | ||
|
|
d4f2f0e11b | ||
|
|
916d9a7c8a | ||
|
|
6d5ab0edda | ||
|
|
307d483323 | ||
|
|
eb4960f307 | ||
|
|
9df72e61a2 | ||
|
|
fcb6391ba3 | ||
|
|
16a77f281e | ||
|
|
87ebf7023f | ||
|
|
028f87653a | ||
|
|
0e51983819 | ||
|
|
c174f2b829 | ||
|
|
8e9d393eb2 | ||
|
|
f1f02fd005 | ||
|
|
f279a979e3 | ||
|
|
e0bbe9cea4 | ||
|
|
d3cc23f6a0 | ||
|
|
4c3f3ee4e2 | ||
|
|
2d7c5d7fd6 | ||
|
|
8be68aa6df | ||
|
|
a731ad14ec | ||
|
|
05ca96aa7f | ||
|
|
60aa32d003 | ||
|
|
0e7ee41444 | ||
|
|
b5f6b1d97f | ||
|
|
f1ac5739e4 | ||
|
|
8cbb57df97 | ||
|
|
2c8d2998bb | ||
|
|
44684fcfd0 | ||
|
|
7081e03c23 | ||
|
|
246db98519 | ||
|
|
ee245d348f | ||
|
|
f718741044 | ||
|
|
c054ff851a | ||
|
|
755787f9ee | ||
|
|
24f8b2fbd5 | ||
|
|
ee02a19e9a | ||
|
|
cb5d38c11f | ||
|
|
15436b44da | ||
|
|
5c267663a2 | ||
|
|
fda625b235 | ||
|
|
2cbd8789d8 | ||
|
|
95167f44f1 | ||
|
|
789b51fd05 | ||
|
|
0911c86422 | ||
|
|
7d05c9d8e6 | ||
|
|
a43ae4178a | ||
|
|
c9c2c483fa | ||
|
|
133281faaa | ||
|
|
ef8987917d | ||
|
|
d6a00eaf00 | ||
|
|
69151f0855 | ||
|
|
bb27d753b1 | ||
|
|
37ce29a5e8 | ||
|
|
6297e1c79b | ||
|
|
4e2903e65c | ||
|
|
2e7f56eeb5 | ||
|
|
7e46d5ca08 | ||
|
|
a2bcce9ab1 | ||
|
|
2f7b1c38e1 | ||
|
|
789aaec186 | ||
|
|
f3d6c1727b | ||
|
|
c029b51c97 | ||
|
|
6c5fb5f398 | ||
|
|
4b20db47b2 | ||
|
|
e238ec8fc6 | ||
|
|
9689f55e5c | ||
|
|
ec0c7da494 | ||
|
|
5f9f3e8167 | ||
|
|
6388246418 | ||
|
|
86432eb426 | ||
|
|
a51585f5d0 | ||
|
|
9ec75fb470 | ||
|
|
c8a7f6d76f | ||
|
|
01a8a199d2 | ||
|
|
f85c54596a | ||
|
|
b3e1acc563 | ||
|
|
745ff21551 | ||
|
|
31c8cf9766 | ||
|
|
8901db4e18 | ||
|
|
b1b8c4d713 | ||
|
|
b14b37c22d | ||
|
|
e73e628051 | ||
|
|
3bb920f22c | ||
|
|
2bed26f18a | ||
|
|
fb3363661b | ||
|
|
315b713005 | ||
|
|
70de0ba00b | ||
|
|
25cad3afc6 | ||
|
|
11aa126b80 | ||
|
|
d0e8bb3174 | ||
|
|
6b03108052 | ||
|
|
34447ef874 | ||
|
|
dcd79e87e1 | ||
|
|
8822b4edae | ||
|
|
a24d6ff018 | ||
|
|
707195f237 | ||
|
|
321fcd7b84 | ||
|
|
c5970e9246 | ||
|
|
538a0c5d6c | ||
|
|
4c4df60b81 | ||
|
|
d1cf08c6ba | ||
|
|
e091a8eb55 | ||
|
|
d579c9a2af | ||
|
|
a711d3a3e3 | ||
|
|
2c197af9fd | ||
|
|
d58d621f96 | ||
|
|
0203252b63 | ||
|
|
22edd121d3 | ||
|
|
31b83becad | ||
|
|
6cce3098db | ||
|
|
fd3d60d112 | ||
|
|
9094e5feb8 | ||
|
|
60bfabb097 | ||
|
|
2d4cf76825 | ||
|
|
6a7279ea05 | ||
|
|
4cb4a6224b | ||
|
|
a6e445b7ef | ||
|
|
123a139e43 | ||
|
|
4054315c19 | ||
|
|
d942cedb8e | ||
|
|
ec774b590b | ||
|
|
988a11a5da | ||
|
|
1488946fc5 | ||
|
|
1f05967b0b | ||
|
|
4924391ae8 | ||
|
|
f2668d7dbb | ||
|
|
d26779bee9 | ||
|
|
c75715b186 | ||
|
|
a238b7029d | ||
|
|
98511136ee | ||
|
|
6723b3a4c6 | ||
|
|
40c61149cf | ||
|
|
4f9a463b9d | ||
|
|
f3a8208425 | ||
|
|
cbf2f34f93 | ||
|
|
898fad6be4 | ||
|
|
eaa1a8edca | ||
|
|
08db154791 | ||
|
|
e1cf4c0c67 | ||
|
|
529c43b0e6 | ||
|
|
376abdf49e | ||
|
|
11a744a772 | ||
|
|
47f73ba455 | ||
|
|
001b11efc6 | ||
|
|
089f3a0e71 | ||
|
|
af9a3c85c6 | ||
|
|
a534f9aac1 | ||
|
|
a08016647a | ||
|
|
a557fc7d3c | ||
|
|
2d3d11ec2d | ||
|
|
9bc97c6dd3 | ||
|
|
52f1e33052 | ||
|
|
272e99d41f | ||
|
|
77b67d5a79 | ||
|
|
8e1f464209 | ||
|
|
5f960fd80a | ||
|
|
bddca30668 | ||
|
|
28a2b9668d | ||
|
|
f52d9feef8 | ||
|
|
f77ae6ee15 | ||
|
|
88b99a3835 | ||
|
|
8d16af8770 | ||
|
|
fde9ba86a2 | ||
|
|
c9356f9ef5 | ||
|
|
6a0529f02d | ||
|
|
760178c061 | ||
|
|
0bb2642d24 | ||
|
|
635a4f7265 | ||
|
|
0e34202d4d | ||
|
|
3a9c55a9ea | ||
|
|
2dd1775d9a | ||
|
|
a0635eeb08 | ||
|
|
9677653c54 | ||
|
|
6cf7167c09 | ||
|
|
9718123292 | ||
|
|
420559efec | ||
|
|
f4b6d7845e | ||
|
|
b966529487 | ||
|
|
9c7b83a52e | ||
|
|
ac9447d439 | ||
|
|
a5bcc3ce58 | ||
|
|
a020890244 | ||
|
|
616200f20f | ||
|
|
1f9c3759e7 | ||
|
|
9fb72cfea8 | ||
|
|
dd84abe927 | ||
|
|
aaa69adb0c | ||
|
|
982ee13631 | ||
|
|
8927e16b1f | ||
|
|
dd01504111 | ||
|
|
50e727d591 | ||
|
|
f84e98d836 | ||
|
|
7e92905618 | ||
|
|
9b24dd306c | ||
|
|
aa796266a7 | ||
|
|
a783d0dfc8 | ||
|
|
f9879be439 | ||
|
|
5f21efb1cd | ||
|
|
8e2b8f111f | ||
|
|
08766a0ff7 | ||
|
|
5b19e2e9d2 | ||
|
|
bef28583f3 | ||
|
|
eff53d90ab | ||
|
|
2aade8b7ff | ||
|
|
de0ac51b3d | ||
|
|
b161a907a7 | ||
|
|
397ec929aa | ||
|
|
f108de9ba2 | ||
|
|
e3a139f7bd | ||
|
|
90f8132030 | ||
|
|
60d89c15e6 | ||
|
|
58a0287be7 | ||
|
|
ac3b28da8b | ||
|
|
12cb1e4161 | ||
|
|
4e013b44d8 | ||
|
|
9934ab972e | ||
|
|
30adac5e63 | ||
|
|
d3d7c254f4 | ||
|
|
93ad040936 | ||
|
|
bfeac43f12 | ||
|
|
4388430491 | ||
|
|
b4e21a7817 | ||
|
|
4fe41fe416 | ||
|
|
d8184fb298 | ||
|
|
78dec51ad4 | ||
|
|
de38826897 | ||
|
|
f63e793006 | ||
|
|
ecfdd75e36 | ||
|
|
90b31a29f5 | ||
|
|
cfa0daefc5 | ||
|
|
4aeda6e9e8 | ||
|
|
4f1f10333f | ||
|
|
342c37a02c | ||
|
|
e347bc1c9e | ||
|
|
42116f4467 | ||
|
|
7ce72bafb0 | ||
|
|
f76771f0a8 | ||
|
|
6c29da94f3 | ||
|
|
981523789e | ||
|
|
d9aacfa059 | ||
|
|
5efc5289f7 | ||
|
|
1f68f4e654 | ||
|
|
5670e6696a | ||
|
|
ca6dc5195d | ||
|
|
30ebe318e0 | ||
|
|
a1c3f0d651 | ||
|
|
347e03d75e | ||
|
|
8543382bde | ||
|
|
4f1004472c | ||
|
|
7aee829b94 | ||
|
|
98701104d8 | ||
|
|
7a14e61762 | ||
|
|
f42f5c31ed | ||
|
|
342662c944 | ||
|
|
50088fe0bd | ||
|
|
687f87a748 | ||
|
|
6815c66a0e | ||
|
|
385fe1bb05 | ||
|
|
eddadcc179 | ||
|
|
9426f44cdd | ||
|
|
af7ff3df58 | ||
|
|
7c0cc8794f | ||
|
|
eda18bc990 | ||
|
|
a2c395db36 | ||
|
|
522b085499 | ||
|
|
3ea845cfd9 | ||
|
|
93013b2db1 | ||
|
|
d5a2dea06b | ||
|
|
d188224c06 | ||
|
|
3422c5d3eb | ||
|
|
ebeebbde72 | ||
|
|
e71eff852c | ||
|
|
bfff5682b5 | ||
|
|
429a7d926a | ||
|
|
262e711bcc | ||
|
|
b44b1cc859 | ||
|
|
75dfec1236 | ||
|
|
8c2f3cff8f | ||
|
|
32336b712b | ||
|
|
cfc51e9b96 | ||
|
|
31cefbfc8c | ||
|
|
2c940ecdac | ||
|
|
e51809d066 | ||
|
|
01a18fa587 | ||
|
|
f93deeceb6 | ||
|
|
3275395d53 | ||
|
|
d0881ab3fd | ||
|
|
5db09bf45c | ||
|
|
f4406bd9cf | ||
|
|
3b441073fd | ||
|
|
da22a8ff93 | ||
|
|
f8469cbe00 | ||
|
|
0188629fe2 | ||
|
|
5d246d2701 | ||
|
|
b3cd5486d6 | ||
|
|
7e961fc2a3 | ||
|
|
8fcd286eb0 | ||
|
|
4723a7cbdb | ||
|
|
dbc7b98b0d | ||
|
|
a5bc547c40 | ||
|
|
63b332216e | ||
|
|
8e5340ebc3 | ||
|
|
e4af611c91 | ||
|
|
c31281971c | ||
|
|
eda38cba66 | ||
|
|
b5a2e76926 | ||
|
|
38cc7435dc | ||
|
|
864a760e9c | ||
|
|
0838cbb874 | ||
|
|
4844be80da | ||
|
|
62a767db89 | ||
|
|
ce3463ad6d | ||
|
|
5d059d8537 | ||
|
|
332860b9ce | ||
|
|
2a443cd9db | ||
|
|
f4d1004d32 | ||
|
|
9d8aec7eca | ||
|
|
958c116fd0 | ||
|
|
ec1a125809 | ||
|
|
2dd8e719c8 | ||
|
|
d62c68a490 | ||
|
|
3c6dd290f4 | ||
|
|
07e589aae3 | ||
|
|
1119d3c17f | ||
|
|
eac5d1ee7a | ||
|
|
56cb5c092f | ||
|
|
9d7faf9ed9 | ||
|
|
7da661546f | ||
|
|
48d3280e5e | ||
|
|
b61c65636b | ||
|
|
087a0b079f | ||
|
|
2147417322 | ||
|
|
4304970059 | ||
|
|
fc981fda20 | ||
|
|
be9ff51fd9 | ||
|
|
adde56114e | ||
|
|
5cfd2dc799 | ||
|
|
c878775c72 | ||
|
|
574cdd374b | ||
|
|
a3943aab24 | ||
|
|
1503e58d11 | ||
|
|
2650d57d8e | ||
|
|
4d402c7229 | ||
|
|
d687543910 | ||
|
|
d8ad519cd0 | ||
|
|
a23d093271 | ||
|
|
8a35d69540 | ||
|
|
097a5a0894 | ||
|
|
8760c2bbb0 | ||
|
|
dc635fe7d7 | ||
|
|
f10a1d0ffb | ||
|
|
809779e508 | ||
|
|
80d358d1fd | ||
|
|
a1be17c72c | ||
|
|
0a066f51bb | ||
|
|
294141c353 | ||
|
|
5a47f9fa86 | ||
|
|
6ee2d7d823 | ||
|
|
f2881f02c8 | ||
|
|
9f5445689c | ||
|
|
0ea163e3ee | ||
|
|
f097aa4a67 | ||
|
|
1fcb9e649e | ||
|
|
1d0dc02013 | ||
|
|
8766d31943 | ||
|
|
d857bf483e | ||
|
|
b7774251eb | ||
|
|
da7507fc75 | ||
|
|
fe4699430d | ||
|
|
df4fc8149d | ||
|
|
c156f0c346 | ||
|
|
79a17b0c1c | ||
|
|
d3051ad127 | ||
|
|
f4c53aaf8a | ||
|
|
432ff95a98 | ||
|
|
fe29bb4b9f | ||
|
|
ae5347bc0f | ||
|
|
966de87ef9 | ||
|
|
3569f9a182 | ||
|
|
70a23f8a0a | ||
|
|
857e12b96e | ||
|
|
c10525ada9 | ||
|
|
fb8592495d | ||
|
|
a48ada306c | ||
|
|
8db0d663dc | ||
|
|
70744371a3 | ||
|
|
18c322e8d6 | ||
|
|
75cbfa1b1c | ||
|
|
48c7aa3e84 | ||
|
|
87bce65098 | ||
|
|
c288dc433b | ||
|
|
0cc29d070f | ||
|
|
8fd94b625c | ||
|
|
ccca3fff26 | ||
|
|
f77446919f | ||
|
|
96fdf265d5 | ||
|
|
b964e3f7c3 | ||
|
|
d93c83f775 | ||
|
|
6b9f6c29ec | ||
|
|
09b0bf62e2 | ||
|
|
15d7d3f8a2 | ||
|
|
dedbdf890a | ||
|
|
30085e1e34 | ||
|
|
1c30146491 | ||
|
|
037022b175 | ||
|
|
0aa67727f5 | ||
|
|
8e3e1d5f11 | ||
|
|
d2d70089ca | ||
|
|
94a566acc9 | ||
|
|
daab095557 | ||
|
|
2b9b5df1ee | ||
|
|
e7e62b8d40 | ||
|
|
3d242bbdb6 | ||
|
|
e796eae3c3 | ||
|
|
a257e83a62 | ||
|
|
d527584248 | ||
|
|
0a4de6e2fc | ||
|
|
4b20f12eff | ||
|
|
0de1187012 | ||
|
|
8e474170e4 | ||
|
|
2eeb9b1f35 | ||
|
|
3de6e2c3f1 | ||
|
|
98d166808f | ||
|
|
f75e15dfdc | ||
|
|
f2b892b7d5 | ||
|
|
883ada01f8 | ||
|
|
3a8f45a04d | ||
|
|
906609696b | ||
|
|
66ccde4310 | ||
|
|
4970cdc3f4 | ||
|
|
1becc874ba | ||
|
|
b107a8dc7c | ||
|
|
37aebc1716 | ||
|
|
836877ff93 | ||
|
|
28a846e0cb | ||
|
|
0185a30ec9 | ||
|
|
38e1947302 | ||
|
|
4fb4d6fc0c | ||
|
|
6d719988bf | ||
|
|
b1c1f0e21e | ||
|
|
3f34cc7365 | ||
|
|
3c6c2837bd | ||
|
|
4bcef76fd8 | ||
|
|
2fd5d7aa81 | ||
|
|
5080c68dce | ||
|
|
3403aef37d | ||
|
|
53a34c12d2 | ||
|
|
59417d6721 | ||
|
|
93d63dbca5 | ||
|
|
4643cf1070 | ||
|
|
91bf54019e | ||
|
|
ead716ef0d | ||
|
|
8fec1af257 | ||
|
|
99248caba3 | ||
|
|
af64bdf742 | ||
|
|
66a4925371 | ||
|
|
8eb6acd60f | ||
|
|
ce6892f2e6 | ||
|
|
c14a4e9305 | ||
|
|
5825eb1696 | ||
|
|
bfebbd0095 | ||
|
|
b204507a82 | ||
|
|
9f53426511 | ||
|
|
03c2282c3f | ||
|
|
20092d55fd | ||
|
|
69a2a5cfff | ||
|
|
618cfad100 | ||
|
|
56e625a9df | ||
|
|
79a1ef5d3e | ||
|
|
10dd7619bf | ||
|
|
f9dfec5bd0 | ||
|
|
a9488bc18b | ||
|
|
f0ee708710 | ||
|
|
3390a31cc6 | ||
|
|
0b4b272223 | ||
|
|
8d200ea653 | ||
|
|
eb359c5595 | ||
|
|
e1b8088c17 | ||
|
|
70a1eea231 | ||
|
|
c744974192 | ||
|
|
faa11a87a9 | ||
|
|
91da5c4ab1 | ||
|
|
da5e770e06 | ||
|
|
09557e378b | ||
|
|
72d26fed0f | ||
|
|
225de799e8 | ||
|
|
334c44760f | ||
|
|
ac7fc1020d | ||
|
|
461871327b | ||
|
|
60ddd799de | ||
|
|
80571fbe8f | ||
|
|
d407f85704 | ||
|
|
458dc7db42 | ||
|
|
beab794c0e | ||
|
|
8256f5461c | ||
|
|
0fe3ad7432 | ||
|
|
04e5dda127 | ||
|
|
f65adea2f9 | ||
|
|
cdfb0da5c9 | ||
|
|
cfa3d34dff | ||
|
|
01b7d4f742 | ||
|
|
9a359bf42c | ||
|
|
ebdf11300b | ||
|
|
e1a8f02bce | ||
|
|
862d38b587 | ||
|
|
2415767c06 | ||
|
|
aa59348a94 | ||
|
|
9c925d3327 | ||
|
|
30f7521a3a | ||
|
|
7b3869e385 | ||
|
|
0e641f7c5b | ||
|
|
733d16cf35 | ||
|
|
833bc1b251 | ||
|
|
840f3d9382 | ||
|
|
34d6d867f2 | ||
|
|
e56d5a0454 | ||
|
|
53fdf750f4 | ||
|
|
f096e915cf | ||
|
|
ce59488e8e | ||
|
|
47db522cc1 | ||
|
|
a2cac82cba | ||
|
|
2e74333eb7 | ||
|
|
0056be2d5f | ||
|
|
1d7e034d5e | ||
|
|
8deac175d1 | ||
|
|
d0b766a2d3 | ||
|
|
65692f2a83 | ||
|
|
d0b0786284 | ||
|
|
87ac1002de | ||
|
|
c51fde7f1f | ||
|
|
0a6735110f | ||
|
|
8a284c50a2 | ||
|
|
09431ef27c | ||
|
|
9f9de86d21 | ||
|
|
d9c04a09ba | ||
|
|
04a02cfdc8 | ||
|
|
b3a6c32ef6 | ||
|
|
254f3b5ac9 | ||
|
|
7f9ada14c8 | ||
|
|
f79a4741cc | ||
|
|
f3fd48d0c0 | ||
|
|
fbee3318bd | ||
|
|
813f807876 | ||
|
|
0060a86b20 | ||
|
|
15743c5f46 | ||
|
|
4b9d472f10 | ||
|
|
988006f913 | ||
|
|
2f05c472ce | ||
|
|
5c836cdaaf | ||
|
|
9e39c3495d | ||
|
|
b653aa57b7 | ||
|
|
2ffdd340af | ||
|
|
d63c3fc6d0 | ||
|
|
4486261413 | ||
|
|
a2e32179bb | ||
|
|
72b106e71f | ||
|
|
679f1ed629 | ||
|
|
734815c58d | ||
|
|
abfedf381d | ||
|
|
8e040ae8d9 | ||
|
|
0c9836eb03 | ||
|
|
62b13a9a84 | ||
|
|
c48ccae484 | ||
|
|
6264bfa15f | ||
|
|
b50ba9c02e | ||
|
|
b3474c04c7 | ||
|
|
a1c1271d21 | ||
|
|
79155887b0 | ||
|
|
4178604833 | ||
|
|
d1fcd6958f | ||
|
|
f39623c279 | ||
|
|
520f5cb116 | ||
|
|
43e2c813d1 | ||
|
|
c6ea32f0b0 | ||
|
|
976c3b8494 | ||
|
|
f3db90b6a9 | ||
|
|
82509fb476 | ||
|
|
c27d79cf25 | ||
|
|
de912c1e07 | ||
|
|
2159aa91ff | ||
|
|
748dba41dc | ||
|
|
9349416326 | ||
|
|
3b794c897d | ||
|
|
b460f7a564 | ||
|
|
383b048fef | ||
|
|
243a3bfbf6 | ||
|
|
c108a475e3 | ||
|
|
6b653fa606 | ||
|
|
818962e668 | ||
|
|
c729297615 | ||
|
|
e6e90954a9 | ||
|
|
4e86f60fd2 | ||
|
|
27ff545d46 | ||
|
|
7c891e9ba8 | ||
|
|
6143003516 | ||
|
|
8f83e328b0 | ||
|
|
9afa8efd7d | ||
|
|
393d9ca74e | ||
|
|
97c95c1c49 | ||
|
|
491df2cc82 | ||
|
|
b4a6ecc58c | ||
|
|
103bf593f3 | ||
|
|
0332c0f5e0 | ||
|
|
a004d6976d | ||
|
|
730f786d5b | ||
|
|
8993c71577 | ||
|
|
cc524bb2ab | ||
|
|
2e94eecda0 | ||
|
|
2466270b22 | ||
|
|
54a514edfa | ||
|
|
1336aeaef0 | ||
|
|
3c078100e8 | ||
|
|
13a623ea1f | ||
|
|
05b21eae5f | ||
|
|
e0358d42d6 | ||
|
|
26174d88f4 | ||
|
|
c12d4319ac | ||
|
|
a87bd14342 | ||
|
|
d5990eee71 | ||
|
|
f94343f13b | ||
|
|
ea4c424e0f | ||
|
|
f99e5e015d | ||
|
|
56b57da077 | ||
|
|
4b402d9837 | ||
|
|
6c2b1f555f | ||
|
|
cdcda03e92 | ||
|
|
65aa05a660 | ||
|
|
7c7aa994a5 | ||
|
|
2aec4a69ea | ||
|
|
06c9ea7068 | ||
|
|
c88583c1c0 | ||
|
|
d2b6838453 | ||
|
|
c9f1f8f662 | ||
|
|
7a08343304 | ||
|
|
3b1bb3e08a | ||
|
|
07cafd4866 | ||
|
|
48821a710f | ||
|
|
30a1b333b9 | ||
|
|
696bf71962 | ||
|
|
2d577e92f1 | ||
|
|
86b92b5b30 | ||
|
|
24c1dec046 | ||
|
|
6c478a26c4 | ||
|
|
2d3da6daf8 | ||
|
|
de3b2b8024 | ||
|
|
02a064ffc6 | ||
|
|
cb5303ce4d | ||
|
|
c0dee19cb0 | ||
|
|
870987bba7 | ||
|
|
5d63a4b910 | ||
|
|
3236ee5ec9 | ||
|
|
12ed2ac07b | ||
|
|
729f3b1df9 | ||
|
|
ee1be3599c | ||
|
|
12a6aca8cd | ||
|
|
2b81b8daeb | ||
|
|
5edbdec151 | ||
|
|
eaa38c11b8 | ||
|
|
e904e34556 | ||
|
|
445f805bb8 | ||
|
|
df77b9d0ed | ||
|
|
29f2525b58 | ||
|
|
5a68c7a335 | ||
|
|
69ef7f40d8 | ||
|
|
d1d6b80676 | ||
|
|
dfe83ff497 | ||
|
|
e5acf6d936 | ||
|
|
bca0ca6766 | ||
|
|
f17b5faaf6 | ||
|
|
f20fa571f1 | ||
|
|
b90d1c31c7 | ||
|
|
cf56ca35eb | ||
|
|
c31f5b5782 | ||
|
|
af98c8eb59 | ||
|
|
3a10b2d83c | ||
|
|
32e7c48fd8 | ||
|
|
af578870c7 | ||
|
|
cd470d5497 | ||
|
|
a9c5e2a04f | ||
|
|
0196fd8447 | ||
|
|
b1458840e7 | ||
|
|
1fea786669 | ||
|
|
6f9a57751e | ||
|
|
2e1c585005 | ||
|
|
811626e67b | ||
|
|
cdfd81a67a | ||
|
|
408b8b2107 | ||
|
|
6d5f3a52f4 | ||
|
|
2cdf08de9f | ||
|
|
71141a0f8d | ||
|
|
bded936af5 | ||
|
|
caaac232d7 | ||
|
|
a9d51dad34 | ||
|
|
88296da0af | ||
|
|
de3c4f8fd7 | ||
|
|
1785bab504 | ||
|
|
41da32cd1b | ||
|
|
93d586592e | ||
|
|
d6c6c75157 | ||
|
|
4889769522 | ||
|
|
6c70de6a58 | ||
|
|
fd9154e009 | ||
|
|
97b9214d6e | ||
|
|
a8d1376533 | ||
|
|
3be443c63c | ||
|
|
cc2c9eb21d | ||
|
|
9b3ae5c729 | ||
|
|
ccb7fc5886 | ||
|
|
60d69e3cc4 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,6 +2,7 @@
|
|||||||
/.classpath
|
/.classpath
|
||||||
/.project
|
/.project
|
||||||
/.settings
|
/.settings
|
||||||
|
/dependency-reduced-pom.xml
|
||||||
|
|
||||||
# netbeans
|
# netbeans
|
||||||
/nbproject
|
/nbproject
|
||||||
|
|||||||
227
Changelog.txt
227
Changelog.txt
@@ -7,9 +7,234 @@ Key:
|
|||||||
! Change
|
! Change
|
||||||
- Removal
|
- Removal
|
||||||
|
|
||||||
Version 1.4.08-dev
|
Version 2.1.0
|
||||||
|
+ Added JSON integration to all Skill Commands
|
||||||
|
+ Added config setting to enable or disable classic mcMMO skill scaling
|
||||||
|
+ (Config) Added rank settings for the new Woodcutting skill
|
||||||
|
+ (Config) Added configurable parameters for the new Tree Feller
|
||||||
|
+ (Config) Added classic toggle for Tree Feller
|
||||||
|
+ (Chat) Added ability for admins to spy on party chat (off unless toggled on)
|
||||||
|
+ (Commands) Added toggle command /mcchatspy
|
||||||
|
+ (API) Added many missing SubSkills to SubSkill class
|
||||||
|
+ (Permissions) Added permission node mcmmo.commands.mcchatspy & mcmmo.commands.mcchatspy.others
|
||||||
|
+ (Permissions) Added permission nodes for Harvest Lumber, Splinter, Nature's Bounty, and Bark Surgeon
|
||||||
|
+ (Locale) Added locale strings for new Woodcutting abilities
|
||||||
|
+ (Locale) Added locale strings for mcchatspy command
|
||||||
|
+ (Locale) Added locale strings for JSON integration
|
||||||
|
+ (Locale) Added locale strings for Taming's Pummel SubSkill
|
||||||
|
+ (Locale) Added locale strings for Unarmed's Block Cracker SubSkill
|
||||||
|
- (Locale) Removed localizations with the following codes for being almost empty: id, HR_hr, et_EE, lv, lt, no, pl_PL, pt_PT, tr_TR
|
||||||
|
- (Config) Removed SkillShot's IncreaseLevel & IncreasePercentage (replaced by RankDamageMultiplier)
|
||||||
|
- (Config) Removed AxeMastery's MaxBonus & MaxBonusLevel (replaced by RankDamageMultiplier)
|
||||||
|
! (Skills) Woodcutting's Double Drop subskill is now named Harvest Lumber
|
||||||
|
! (Skills) Archery's Skill Shot now uses a rank system
|
||||||
|
! (Skills) Axe's Axe Mastery now uses a rank system
|
||||||
|
! (Config) Unarmed.IronArm in advanced.yml is now Unarmed.IronArmStyle
|
||||||
|
! (Config) Unarmed.Deflect in advanced.yml is now Unarmed.ArrowDeflect
|
||||||
|
! (Config) Swords.Counter in advanced.yml is now Swords.CounterAttack
|
||||||
|
! (Config) Archery.Retrieve in advanced.yml is now Archery.ArrowRetrieval
|
||||||
|
! (Config) Axes.CriticalHit in advanced.yml is now Axes.CriticalStrikes
|
||||||
|
! (Config) Archery's Skill Shot now uses RankDamageMultiplier for its damage bonus calculations
|
||||||
|
! (Config) Axe's Axe mastery now uses RankDamageMultiplier for its damage bonus calculations
|
||||||
|
! (Permissions) Replaced the old Double Drop permission node for woodcutting with a new Harvest Lumber permission node
|
||||||
|
! (Permissions) Fast Food Service permission node renamed to mcmmo.ability.taming.fastfoodservice
|
||||||
|
! (Permissions) Counter Attack permission node renamed to mcmmo.ability.swords.counterattack
|
||||||
|
! (Permissions) Arrow Deflect permission node renamed to mcmmo.ability.unarmed.arrowdeflect
|
||||||
|
! (Permissions) Iron Arm Style permission node renamed to mcmmo.ability.unarmed.ironarmstyle
|
||||||
|
! (Locale) Removed redundant information from some skill names and descriptions en_US (other locales will need to be updated)
|
||||||
|
! (Locale) SubSkill locale keys are now located at {ParentSkill}.SubSkill.SubSkillName
|
||||||
|
! (Locale) Super Abilities no longer have (ABILITY) in their Skill.Effect strings
|
||||||
|
! (API) mcMMO is now built against Spigot-API instead of Bukkit
|
||||||
|
! (API) SkillType is now PrimarySkill
|
||||||
|
! (API) SecondarySkill is now SubSkill
|
||||||
|
! (API) AbilityType is now SuperAbility
|
||||||
|
! (API) SecondaryAbilityEvent is now SubSkillEvent
|
||||||
|
! (API) SecondarySkill ENUM is being updated to have the parent skill as a prefix and a getter method for grabbing the parent skill
|
||||||
|
! (API) GREEN_THUMB_PLANT & GREEN_THUMB_BLOCK are replaced by GREEN_THUMB
|
||||||
|
! Skill Super Powers (Tree Feller, etc...) will now require level 10+ to use
|
||||||
|
! (Skills) mcMMO skills will now be on a scale from 1-100 instead of 0-1000 (for existing mcMMO installs this is opt-in and off by default)
|
||||||
|
! (Code) Refactored some unreadable code relating to SecondaryAbility activation in SkillUtils
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.0.0
|
||||||
|
= Fixed an interaction between Tree Feller and Stripped Wood
|
||||||
|
! Fireworks no longer fire by default for ability activation/deactivation
|
||||||
|
! Website has been changed and the MOTD string relating to it reflects this
|
||||||
|
! Discord link added to mcMMO command
|
||||||
|
! Updated misc strings relating to mcMMO
|
||||||
|
|
||||||
|
|
||||||
|
Version 1.5.05-SNAPSHOT
|
||||||
|
|
||||||
|
Version 1.5.04
|
||||||
|
+ Added option to config.yml to control mcMMO generated sound volume
|
||||||
|
+ Added option to config.yml to truncate existing player skill levels that exceed the skill level cap
|
||||||
|
+ Falling blocks persist mcMMO natural data
|
||||||
|
= Woodcutting double drops correctly identify acacia and dark oak logs
|
||||||
|
= Skill Reset command now correctly identifies arguments
|
||||||
|
= Hylian Treasure config options are now actually used
|
||||||
|
= Child skills now use parent skills configured skill caps properly
|
||||||
|
= Auto Update config now properly works
|
||||||
|
! Item dropped from blocks now drop from the center
|
||||||
|
! Potions Config updated for 1.9
|
||||||
|
! Flux mining now simulates a block break event for other plugins to act upon
|
||||||
|
! Zombie Pigmen spawned from nether portals are now considered spawner mobs
|
||||||
|
! Flux Pickaxe lore now appends to existing lore as opposed to replacing it
|
||||||
|
! Party chat no longer displays colors when logged in server console
|
||||||
|
- Treefeller no longer lowers exp for big trees
|
||||||
|
- No longer supports 1.8 :(
|
||||||
|
- Removed plugin metrics
|
||||||
|
|
||||||
|
Version 1.5.03
|
||||||
|
= Fixed bug where absorption hearts could be attacked by allied players
|
||||||
|
= Fixed bug where new forms of stone would drop the wrong type when mined with Silk Touch
|
||||||
|
= Fixed bug where blocks would not get tracked correctly when using sticky pistons and slime blocks in certain situations
|
||||||
|
= Fixed bug where config value for Daze damage was ignored
|
||||||
|
= Fixed UUID updater to not lose data on errors
|
||||||
|
= Fixed bug where uuid update could result in large amounts of user data being deleted
|
||||||
|
= Fixed bug where custom potions were missed in potion stage calculation
|
||||||
|
= Fixed piston dupe bugs permanently
|
||||||
|
= Fixed bug involving user name changes
|
||||||
|
= Fixed old user purge to properly calculate months
|
||||||
|
= Fixed bug where Repair would incorrectly check items
|
||||||
|
= Fixed bug where apostrophes in locale files would not read correctly
|
||||||
|
= Fixed bug where treasure data was limited to 255 instead of Short.MAX_VALUE
|
||||||
|
! Moved more user loading calculations to async loading thread to reduce lag on login
|
||||||
|
|
||||||
|
Version 1.5.02
|
||||||
|
+ Added option to config.yml for Chimaera Wings to stop using bed spawn points
|
||||||
|
+ Added option to config.yml to let non-tools in hand count as unarmed
|
||||||
|
+ Added option to experience.yml to control XP gained by killing bred animals
|
||||||
|
+ Added support for 1.8 mobs and features
|
||||||
|
= Fixed bug where no Mining XP was granted when Flux Mining was successful
|
||||||
|
= Fixed bug with UUID conversions in Flatfile
|
||||||
|
= Fixed a couple Dupe bugs that were introduced recently
|
||||||
|
= Fixed bug where MobHealthbarTypes were not saved between server restarts
|
||||||
|
! Changed Flux Mining mechanics. In order to use the ability, you need to infuse a pickaxe with furnace powers first.
|
||||||
|
! Scoreboard tips are only shown a couple of times to the player, instead of once per login session
|
||||||
|
! Changed Archery distance multiplier to be configurable
|
||||||
|
! Archery distance XP bonus cannot exceed indefinitely anymore
|
||||||
|
|
||||||
|
Version 1.5.01
|
||||||
|
+ Added new child skill; Salvage
|
||||||
|
+ Added UUID support!
|
||||||
|
+ Added SQL connection pooling and async loading!
|
||||||
|
+ Added the long awaited Diminished Returns feature
|
||||||
|
+ Added new feature to Herbalism. Instantly-regrown crops are protected from being broken for 1 second
|
||||||
|
+ Added option to config.yml to show the /mcstats scoreboard automatically after logging in
|
||||||
|
+ Added option to config.yml for Alchemy. Skills.Alchemy.Prevent_Hopper_Transfer_Bottles
|
||||||
|
+ Added option to config.yml for Scoreboards, display "Ability" instead of ability names on the scoreboards
|
||||||
|
+ Added options to experience.yml for Dirt and Sand variations
|
||||||
|
+ Added support for `MATERIAL|data` format in treasures.yml
|
||||||
|
+ Added API to experience events to get XP gain reason
|
||||||
|
+ Added API to check if an entity is bleeding
|
||||||
|
+ Added API to ExperienceAPI to get the amount of XP needed for a level
|
||||||
|
+ Added API class SkillAPI used to get a list of valid skill names
|
||||||
|
+ Added API events for hardcore features, McMMOPlayerPreDeathPenaltyEvent, McMMOPlayerStatLossEvent and McMMOPlayerVampirismEvent
|
||||||
|
+ Added API to ExperienceAPI to specify if XP can be shared
|
||||||
|
+ Added options to tools.yml and armor.yml config files to set a pretty repair material name
|
||||||
|
+ Added full support for repairables in tools.yml and armor.yml config files
|
||||||
|
+ Added magical mod config file import command, for Cauldron 1.7+. Check wiki for usage
|
||||||
|
+ Added particle effects and sounds to "Call of the Wild" (Taming)
|
||||||
|
+ Added summon length to "Call of the Wild". Summons will now commit suicide after their lifespan expires
|
||||||
|
+ Added feature which makes tamed wolves attack a target shot by the owner
|
||||||
|
= Fixed bug where pistons would mess with the block tracking
|
||||||
|
= Fixed bug where the Updater was running on the main thread.
|
||||||
|
= Fixed bug when players would use /ptp without being in a party
|
||||||
|
= Fixed bug where player didn't have a mcMMOPlayer object in AsyncPlayerChatEvent
|
||||||
|
= Fixed bug where dodge would check the wrong player skill level
|
||||||
|
= Fixed bug which causes /party teleport to stop working
|
||||||
|
= Fixed bug where SaveTimerTask would produce an IndexOutOfBoundsException
|
||||||
|
= Fixed bug where Alchemy would not fire BrewEvents
|
||||||
|
= Fixed bug with setting custom names and lore in treasures config
|
||||||
|
= Fixed bug which would cause a NullPointerException with getFlowerAndGrassXp()
|
||||||
|
= Fixed bug which could cause and SQLException regarding the connection property 'maxReconnects'.
|
||||||
|
= Fixed bug where falling blocks were incorrectly tracked
|
||||||
|
= Fixed bug where items would get deleted when in Berserk with a full inventory
|
||||||
|
= Fixed bug where the console would not correctly show party chat colors
|
||||||
|
= Fixed bug where party chat was using non thread safe methods
|
||||||
|
= Fixed bug where Blast Mining unlock levels could be to high in certain occasions
|
||||||
|
= Fixed bug where Blast Minings ability "Demolition Expert" would not work
|
||||||
|
= Fixed bug where Repair_Material_Quantity wasn't read in mod config files
|
||||||
|
! Changed SecondaryAbilityEvent to implement Cancellable and it now gets fired for damage related secondary abilities
|
||||||
|
! Changed the way mcMMO handles bonus damage, updated for the new damage event API
|
||||||
|
! Changed player data saving. Save tasks are now asynchronous
|
||||||
|
! Vanished players no longer get hit by AoE effects
|
||||||
|
! Changed Alchemy config option 'Prevent_Hopper_Transfer' renamed to 'Prevent_Hopper_Transfer_Ingredients'
|
||||||
|
! Changed Alchemy XP distribution. XP is granted based on the stage of the potion.
|
||||||
|
! Changed behavior of the Blast Mining ability "Demolition Expert"; now only decreases damage for the ability user
|
||||||
|
! Updated for new getOnlinePlayers() behavior
|
||||||
|
! Updated for new blocks and entities
|
||||||
|
! Changed McMMOPlayerDeathPenaltyEvent to get fired after hardcore penalty calculations, use McMMOPlayerPreDeathPenaltyEvent for old behavior
|
||||||
|
! Moved Refresh_Chunks setting from hidden.yml to config.yml
|
||||||
|
- Removed salvage ability from Repair, salvage has it's own (child) skill now
|
||||||
|
|
||||||
|
Version 1.5.00
|
||||||
|
+ Added Podzol & Red Sand to Excavation
|
||||||
|
+ Added Hardened Clay, Stained Clay, and Packed Ice to Mining blocks
|
||||||
|
+ Added Acacia and Dark Oak to Woodcutting blocks
|
||||||
|
+ Added Salmon, Clownfish, and Pufferfish to Fishing XP
|
||||||
|
+ Added new flowers and grasses to Herbalism XP
|
||||||
|
+ Added option to config.yml which allows players to always catch fish, even when a treasure is found
|
||||||
|
+ Added option to config.yml to override vanilla Minecraft treasures
|
||||||
|
! Fishing XP now depends on the type of fish.
|
||||||
|
! Woodcutting XP in experience.yml and Woodcutting double drops in config.yml now use the tree species names. Oak is now Generic, and Spruce is now Redwood.
|
||||||
|
! Red_Rose was replaced by Poppy, and so the key in experience.yml has been updated accordingly.
|
||||||
|
- Removed deprecated permission nodes
|
||||||
|
- Removed "Treasure found!" message
|
||||||
|
|
||||||
|
Version 1.4.08
|
||||||
|
+ Added a new skill; Alchemy. Special thanks to EasyMFnE for creating this!
|
||||||
|
+ Added SecondaryAbilityType enum, and new SecondaryAbilityWeightedActivationCheckEvent, fired when a secondary ability checkes its activation chances
|
||||||
+ Added the possibility to gain experience when using Fishing "Shake"
|
+ Added the possibility to gain experience when using Fishing "Shake"
|
||||||
|
+ Added config options to disable various sound effects
|
||||||
|
+ Smelting now works with custom ores - add smelting XP value to blocks.yml, or it will default to 1/10th of normal XP.
|
||||||
|
+ Added automatic cleanup of backups folder.
|
||||||
|
+ Added bypass permission for finding Fishing traps
|
||||||
|
+ Added level threshold settings to hardcore modes. When a players skill level is below this threshold, they will not lose any stats
|
||||||
|
+ Added party alliances, two parties can now team up. Allies share party chat and cannot harm each other.
|
||||||
|
+ Added new experience bonus perk 'mcmmo.perks.xp.10percentboost.<skillname>' multiplies incoming XP by 1.1
|
||||||
|
+ Added new experience bonus perk 'mcmmo.perks.xp.customboost.<skillname>' multiplies incoming XP by the boost amount defined in the experience config
|
||||||
|
+ Added Ender Dragon, Wither, and Witch to combat experience multipliers - they do not give XP by default
|
||||||
|
+ Added support for multiple mod config files, naming can be done as either armor.<modname>.yml or <modname>.armor.yml
|
||||||
|
+ Added config options to configure the items used in "Call of the Wild"
|
||||||
|
+ Added config option to configure the database command cooldown
|
||||||
|
= Fixed bug where healthbars wouldn't display if skills were disabled
|
||||||
|
= Fixed bug with "Call of the Wild" entities despawning
|
||||||
|
= Fixed bug with updating (very) old user data.
|
||||||
|
= Fixed bug with checking maximum durability of mod items.
|
||||||
|
= Fixed exploit involving Call of The Wild.
|
||||||
|
= Fixed bug where LeafBlower permissions were ignored
|
||||||
|
= Fixed bug with toggle commands not properly displaying the success message.
|
||||||
= Fixed IllegalArgumentException caused by an empty Fishing treasure category
|
= Fixed IllegalArgumentException caused by an empty Fishing treasure category
|
||||||
|
= Fixed bug with Salvage not reading the config value for the anvil material.
|
||||||
|
= Fixed exploit where you could receive smelting XP for improper items
|
||||||
|
= Fixed bug where the Unbreaking enchantment was ignored when using "Super Breaker" or "Giga Drill Breaker"
|
||||||
|
= Fixed bug which prevented players from gaining Acrobatics XP when the setting 'Prevent_XP_After_Teleport' was set to false
|
||||||
|
= Fixed bug where cooldown donor perks were reducing more than expected
|
||||||
|
= Fixed bug where disabling hardcore mode for specific skills didn't work
|
||||||
|
= Fixed bug which caused the backup cleanup to delete old backups while it should have kept those
|
||||||
|
= Fixed bug where party chat broke if the display name contained special characters
|
||||||
|
= Fixed bug where `/addlevels all` and `/skillreset all` didn't work
|
||||||
|
= Fixed bug which made it possible to gain XP by taming the same horse multiple times, if a player "untamed" that horse
|
||||||
|
= Fixed bug where some horses summoned with "Call of the Wild" were unable to jump
|
||||||
|
= Fixed bug where the /ptp request expiration time was checked wrongly - preventing players from using the command
|
||||||
|
= Fixed bug where Hylian Luck was broken
|
||||||
|
= Fixed bug where Snow would never drop treasures
|
||||||
|
= Fixed issues with commands giving away vanished players.
|
||||||
|
= Fixed bug where the Repair lucky perk would increase the Arcane Forging downgrade chance, instead of decreasing it
|
||||||
|
! Changed party system. Parties now have XP and Levels. Party features such as party teleport and party chat have to be unlocked before they can be used by the party members
|
||||||
|
! Changed appearance of party member list. Gold = party leader, White = online, Gray = offline, Italic = not nearby
|
||||||
|
! Updated localization files
|
||||||
|
! Changed the appearance of /mcmmo commands
|
||||||
|
! Changed AxesCritical to CriticalHit in config file
|
||||||
|
! Changed several secondary ability permissions(deprecated versions still exist)
|
||||||
|
! Changed /ptp config setting, Commands.ptp.Confirm_Required is now Commands.ptp.Accept.Required
|
||||||
|
! Changed config validation for UnlockLevels, they can now also be 0
|
||||||
|
! Changed config validation for Rank_Levels, successive Ranks can now be less than or equal to each other
|
||||||
|
! Changed default amount of XP gained from mining Quartz Ore. From 250 to 100 XP.
|
||||||
|
! Changed Acrobatics config setting, Skills.Acrobatics.Prevent_XP_After_Teleport is now Skills.Acrobatics.XP_After_Teleport_Cooldown
|
||||||
|
- Removed /stats alias for /mcstats
|
||||||
|
|
||||||
Version 1.4.07
|
Version 1.4.07
|
||||||
+ Added XP boost to Acrobatics when wearing Boots of Feather Falling
|
+ Added XP boost to Acrobatics when wearing Boots of Feather Falling
|
||||||
|
|||||||
58
README.md
58
README.md
@@ -1,46 +1,50 @@
|
|||||||
# mcMMO
|
# mcMMO
|
||||||
## The RPG lovers mod
|
## The RPG lovers mod
|
||||||
|
|
||||||
### Dev builds
|
## Website
|
||||||
Our latest development builds are available ~~[here](http://ci.mcmmo.info)~~. Unfortunately, the mcMMO site is down; a temporary dev build location is hosted [here](http://ci.ecocitycraft.com/job/mcMMO/).
|
I'm working on a brand new website for mcMMO
|
||||||
|
|
||||||
|
You can check it out here http://www.mcmmo.org
|
||||||
|
|
||||||
|
I plan to post links to our new wiki (its still under development), downloads, and dev blogs there.
|
||||||
|
|
||||||
|
|
||||||
|
### Builds
|
||||||
|
Currently, you can obtain our builds via the Spigot resource page: https://www.spigotmc.org/resources/official-mcmmo.63489/
|
||||||
|
|
||||||
### Brief Description
|
### Brief Description
|
||||||
The goal of mcMMO is to take core Minecraft game mechanics and expand them into add an extensive and quality RPG experience. Everything in mcMMO has been carefully thought out and is constantly being improved upon. Currently, mcMMO adds thirteen 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.
|
The goal of mcMMO is to take core Minecraft game mechanics and expand them into add 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
|
## About the Team
|
||||||
|
|
||||||
mcMMO is currently developed by a team of individuals from all over the world.
|
mcMMO is currently developed by a team of individuals from all over the world.
|
||||||
### Glorious Leader
|
|
||||||
[]
|
### Project Lead & Founder
|
||||||
(https://github.com/gmcferrin)
|
[](https://github.com/nossr50)
|
||||||
|
|
||||||
|
### Former Lead
|
||||||
|
[](https://github.com/gmcferrin)
|
||||||
|
|
||||||
### Developers
|
### Developers
|
||||||
[]
|
[](https://github.com/bm01)
|
||||||
(https://github.com/bm01)
|
[](https://github.com/Glitchfinder)
|
||||||
[]
|
[](https://github.com/NuclearW)
|
||||||
(https://github.com/Glitchfinder)
|
[](https://github.com/shatteredbeam)
|
||||||
[]
|
[](https://github.com/TfT-02)
|
||||||
(https://github.com/nossr50)
|
[](https://github.com/t00thpick1)
|
||||||
[]
|
[](https://github.com/riking)
|
||||||
(https://github.com/NuclearW)
|
|
||||||
[]
|
### Special thanks
|
||||||
(https://github.com/shatteredbeam)
|
[](https://github.com/EasyMFnE)
|
||||||
[]
|
Added the Alchemy skill
|
||||||
(https://github.com/TfT-02)
|
|
||||||
[]
|
|
||||||
(https://github.com/t00thpick1)
|
|
||||||
[]
|
|
||||||
(https://github.com/riking)
|
|
||||||
|
|
||||||
## Compiling
|
## Compiling
|
||||||
|
|
||||||
mcMMO uses Maven 3 to manage dependancies, packaging, and shading of necessary classes; Maven 3 is required to compile mcMMO.
|
mcMMO uses Maven 3 to manage dependencies, packaging, and shading of necessary classes; Maven 3 is required to compile mcMMO.
|
||||||
|
|
||||||
The typical command used to build mcMMO is: `mvn clean package install`
|
The typical command used to build mcMMO is: `mvn clean package install`
|
||||||
|
|
||||||
Required Libraries:
|
Required Libraries:
|
||||||
* JUnit
|
|
||||||
* EMetrics
|
|
||||||
* Bukkit
|
* Bukkit
|
||||||
|
* JUnit
|
||||||
|
|
||||||
http://dev.bukkit.org/server-mods/mcmmo for more up to date information.
|
https://www.spigotmc.org/resources/official-mcmmo.63489/ for more up to date information.
|
||||||
|
|||||||
439
extras/mods/1.6.x/LOTR.armor.yml
Executable file
439
extras/mods/1.6.x/LOTR.armor.yml
Executable file
@@ -0,0 +1,439 @@
|
|||||||
|
# Lord of the Rings mod config by Dragyn
|
||||||
|
# Built against version [1.6.4] The Lord of the Rings Mod Public Beta 11.1
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Settings for Boots
|
||||||
|
###
|
||||||
|
Boots:
|
||||||
|
# Bronze
|
||||||
|
X12015:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12004
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Orc
|
||||||
|
X12035:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12036
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Gondorian
|
||||||
|
X12060:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Mithril
|
||||||
|
X12064:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Elven
|
||||||
|
X12088:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Warg
|
||||||
|
X12098:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12094
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Dwarven
|
||||||
|
X12129:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12112
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Galven
|
||||||
|
X12134:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12130
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Uruk
|
||||||
|
X12161:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12147
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Wood Elf
|
||||||
|
X12176:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: LEATHER
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Ancient
|
||||||
|
X12180:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12179
|
||||||
|
Repair_Material_Data_Value: 3
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Rohirric
|
||||||
|
X12187:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Rangers
|
||||||
|
X12206:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: LEATHER
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Dunlending
|
||||||
|
X12210:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Morgul
|
||||||
|
X12222:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12217
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
#
|
||||||
|
# Settings for Chestplates
|
||||||
|
###
|
||||||
|
Chestplates:
|
||||||
|
# Bronze
|
||||||
|
X12013:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12004
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Orc
|
||||||
|
X12033:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12036
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Gondorian
|
||||||
|
X12058:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Mithril
|
||||||
|
X12062:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Elven
|
||||||
|
X12086:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Warg
|
||||||
|
X12096:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12094
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Dwarven
|
||||||
|
X12127:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12112
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Galven
|
||||||
|
X12132:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12130
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Uruk
|
||||||
|
X12159:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12147
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Wood Elf
|
||||||
|
X12174:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: LEATHER
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Ancient
|
||||||
|
X12178:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12179
|
||||||
|
Repair_Material_Data_Value: 3
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Rohirric
|
||||||
|
X12185:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Rangers
|
||||||
|
X12204:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: LEATHER
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Dunlending
|
||||||
|
X12208:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Morgul
|
||||||
|
X12220:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12217
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
#
|
||||||
|
# Settings for Helmets
|
||||||
|
###
|
||||||
|
Helmets:
|
||||||
|
# Bronze
|
||||||
|
X12012:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12004
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Orc
|
||||||
|
X12032:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12036
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Gondorian
|
||||||
|
X12057:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Mithril
|
||||||
|
X12061:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Elven
|
||||||
|
X12085:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Warg
|
||||||
|
X12095:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12094
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Dwarven
|
||||||
|
X12126:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12112
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Galven
|
||||||
|
X12131:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12130
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Uruk
|
||||||
|
X12158:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12147
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Wood Elf
|
||||||
|
X12173:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: LEATHER
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Ancient
|
||||||
|
X12177:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12179
|
||||||
|
Repair_Material_Data_Value: 3
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Rohirric
|
||||||
|
X12184:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Rangers
|
||||||
|
X12203:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: LEATHER
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Dunlending
|
||||||
|
X12207:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Morgul
|
||||||
|
X12219:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12217
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
#
|
||||||
|
# Settings for Leggings
|
||||||
|
###
|
||||||
|
Leggings:
|
||||||
|
# Bronze
|
||||||
|
X12014:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12004
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Orc
|
||||||
|
X12034:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12036
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Gondorian
|
||||||
|
X12059:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Mithril
|
||||||
|
X12063:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Elven
|
||||||
|
X12087:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Warg
|
||||||
|
X12097:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12094
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Dwarven
|
||||||
|
X12128:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12112
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Galven
|
||||||
|
X12133:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12130
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Uruk
|
||||||
|
X12160:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12147
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Wood Elf
|
||||||
|
X12175:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: LEATHER
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Ancient
|
||||||
|
X12179:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12179
|
||||||
|
Repair_Material_Data_Value: 3
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Rohirric
|
||||||
|
X12186:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Rangers
|
||||||
|
X12205:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: LEATHER
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Dunlending
|
||||||
|
X12209:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Morgul
|
||||||
|
X12221:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12217
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
211
extras/mods/1.6.x/LOTR.blocks.yml
Executable file
211
extras/mods/1.6.x/LOTR.blocks.yml
Executable file
@@ -0,0 +1,211 @@
|
|||||||
|
# Lord of the Rings mod config by Skuli (Updated by Dragyn)
|
||||||
|
# Built against version [1.6.4] The Lord of the Rings Mod Public Beta 11.1
|
||||||
|
#
|
||||||
|
# Settings for Custom Excavation Blocks
|
||||||
|
###
|
||||||
|
Excavation:
|
||||||
|
Block_1|0:
|
||||||
|
XP_Gain: 99
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Block_2|0:
|
||||||
|
XP_Gain: 99
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Custom Herbalism Blocks
|
||||||
|
###
|
||||||
|
Herbalism:
|
||||||
|
|
||||||
|
# Shireheather
|
||||||
|
X1813:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
|
||||||
|
# Simbelmyne
|
||||||
|
X1805:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
|
||||||
|
# Asphodel
|
||||||
|
X1895:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
|
||||||
|
# Bluebell
|
||||||
|
X1867:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
|
||||||
|
# Clover
|
||||||
|
X1873:
|
||||||
|
XP_Gain: 10
|
||||||
|
Double_Drops_Enabled: false
|
||||||
|
|
||||||
|
# Dead Marsh Plant
|
||||||
|
X1886:
|
||||||
|
XP_Gain: 10
|
||||||
|
Double_Drops_Enabled: false
|
||||||
|
|
||||||
|
# DwarfWort
|
||||||
|
X1902:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
|
||||||
|
# Elanor
|
||||||
|
X1833:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
|
||||||
|
# Lettuce Crop
|
||||||
|
X1830:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
|
||||||
|
# Morgul Shroom
|
||||||
|
X1870:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
|
||||||
|
# Niphredil
|
||||||
|
X1834:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
|
||||||
|
# Pipeweed Crop
|
||||||
|
X1823:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
|
||||||
|
# Pipeweed Plant
|
||||||
|
X1822:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Custom Mining Blocks
|
||||||
|
###
|
||||||
|
Mining:
|
||||||
|
|
||||||
|
# Mithril
|
||||||
|
X1803:
|
||||||
|
XP_Gain: 2000
|
||||||
|
Double_Drops_Enabled: false
|
||||||
|
Is_Ore: true
|
||||||
|
# Naurite
|
||||||
|
X1818:
|
||||||
|
XP_Gain: 150
|
||||||
|
Double_Drops_Enabled: false
|
||||||
|
Is_Ore: false
|
||||||
|
#Glowstone Ore
|
||||||
|
X1859:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: false
|
||||||
|
Is_Ore: false
|
||||||
|
# Remains
|
||||||
|
X1885:
|
||||||
|
XP_Gain: 1800
|
||||||
|
Double_Drops_Enabled: false
|
||||||
|
Is_Ore: false
|
||||||
|
# Gulduril
|
||||||
|
X1887:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
|
||||||
|
# Quendite
|
||||||
|
X1846:
|
||||||
|
XP_Gain: 150
|
||||||
|
Double_Drops_Enabled: false
|
||||||
|
Is_Ore: false
|
||||||
|
|
||||||
|
# MorgulIron
|
||||||
|
X1819:
|
||||||
|
XP_Gain: 25
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
|
||||||
|
# Rohan Rock
|
||||||
|
X180|2:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: false
|
||||||
|
Is_Ore: false
|
||||||
|
|
||||||
|
|
||||||
|
#Gondor Stone
|
||||||
|
X180|1:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: false
|
||||||
|
Is_Ore: false
|
||||||
|
|
||||||
|
# Mordor Stone
|
||||||
|
X180|0:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: false
|
||||||
|
Is_Ore: false
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Custom Woodcutting Blocks
|
||||||
|
###
|
||||||
|
Woodcutting:
|
||||||
|
# Shire Pine
|
||||||
|
X1806|0:
|
||||||
|
XP_Gain: 90
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
|
||||||
|
# Mallorn
|
||||||
|
X1806|1:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
|
||||||
|
# Apple
|
||||||
|
X1860|0:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
|
||||||
|
# Pear
|
||||||
|
X1860|1:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
|
||||||
|
# Cherry
|
||||||
|
X1860|2:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
|
||||||
|
# Mirkwood
|
||||||
|
X1806|2:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
|
||||||
|
# Charred
|
||||||
|
X1806|3:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
|
||||||
|
# Lebethron
|
||||||
|
X1896|0:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
|
||||||
|
# Beech
|
||||||
|
X1896|1:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Custom Ability Blocks
|
||||||
|
# (These blocks don't trigger abilities)
|
||||||
|
###
|
||||||
|
Ability_Blocks:
|
||||||
|
Block_1|0:
|
||||||
|
Block_2|0:
|
||||||
700
extras/mods/1.6.x/LOTR.tools.yml
Executable file
700
extras/mods/1.6.x/LOTR.tools.yml
Executable file
@@ -0,0 +1,700 @@
|
|||||||
|
# Lord of the Rings mod config by Skuli (Updated by Dragyn)
|
||||||
|
# Built against version [1.6.4] The Lord of the Rings Mod Public Beta 11.1
|
||||||
|
|
||||||
|
Axes:
|
||||||
|
#DwarvenThrowingAxe
|
||||||
|
X12146:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12112
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 451
|
||||||
|
#UrukWarhammer
|
||||||
|
X12156:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12147
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 391
|
||||||
|
#Gondorian Warhammer
|
||||||
|
X12140:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: false
|
||||||
|
Repair_Material: X12112
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 281
|
||||||
|
#UrukBattleaxe
|
||||||
|
X12155:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12147
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 391
|
||||||
|
#MithrilBattleaxe
|
||||||
|
X12138:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 2479
|
||||||
|
#MithrilWarhamer
|
||||||
|
X12139:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 2479
|
||||||
|
#OrcWarhammer
|
||||||
|
X12125:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12036
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 261
|
||||||
|
#Dwarven Warhammer
|
||||||
|
X12120:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12112
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 451
|
||||||
|
#DwarvenZbattleaxe
|
||||||
|
X12119:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12112
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 451
|
||||||
|
#BronzeAxe
|
||||||
|
X12009:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12004
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 197
|
||||||
|
#MithrilAxe
|
||||||
|
X12050:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 2479
|
||||||
|
#MallornAxe
|
||||||
|
X12075:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X1801
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 121
|
||||||
|
#Elven Axe
|
||||||
|
X12080:
|
||||||
|
XP_Modifer: 2
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: false
|
||||||
|
Repair_Material: X12112
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 313
|
||||||
|
#DwarvenAxe
|
||||||
|
X12115:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12112
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 450
|
||||||
|
#OrcAxe
|
||||||
|
X12123:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12036
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 261
|
||||||
|
#UrukAxe
|
||||||
|
X12150:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12147
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 391
|
||||||
|
Bows:
|
||||||
|
#ElvenBow
|
||||||
|
X12093:
|
||||||
|
XP_Modifer: 2
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: false
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 9
|
||||||
|
Durability: 485
|
||||||
|
#mallornbow
|
||||||
|
X12084:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X1801
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 417
|
||||||
|
#orcBow
|
||||||
|
X12099:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12036
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 441
|
||||||
|
#UrukCrossbow
|
||||||
|
X12163:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12147
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 471
|
||||||
|
#MithrilCrossbow
|
||||||
|
X12171:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 1761
|
||||||
|
#IronCrossbow
|
||||||
|
X12170:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 9
|
||||||
|
Durability: 357
|
||||||
|
#BowofMirkwood
|
||||||
|
X12177:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: false
|
||||||
|
Repair_Material: X1806
|
||||||
|
Repair_Material_Data_Value: 2
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 417
|
||||||
|
Hoes:
|
||||||
|
#BronzeHoe
|
||||||
|
X12011:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12004
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 197
|
||||||
|
#MithrilHoe
|
||||||
|
X12052:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 2479
|
||||||
|
#MallornHoe
|
||||||
|
X12077:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X1801
|
||||||
|
Repair_Material_Data_Value: 1
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 121
|
||||||
|
#CopperHoe
|
||||||
|
X26511:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X26507
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 180
|
||||||
|
#ElvenHoe
|
||||||
|
X12082:
|
||||||
|
XP_Modifer: 2
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: false
|
||||||
|
Repair_Material: X12082
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 313
|
||||||
|
#DwarvenHoe
|
||||||
|
X12117:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X26507
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 180
|
||||||
|
Pickaxes:
|
||||||
|
#MEBronzePickaxe
|
||||||
|
X12008:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12004
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 197
|
||||||
|
#MithrilPixkaxe
|
||||||
|
X12049:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 2479
|
||||||
|
#MallornPickaxe
|
||||||
|
X12074:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X1801
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 121
|
||||||
|
#ElvenPickaxe
|
||||||
|
X12079:
|
||||||
|
XP_Modifer: 2
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: false
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 313
|
||||||
|
#DwarvenPickaxe
|
||||||
|
X12114:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12112
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 451
|
||||||
|
#UrukPickaxe
|
||||||
|
X12149:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12147
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 391
|
||||||
|
#OrcPickaxe
|
||||||
|
X12122:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12036
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 261
|
||||||
|
Shovels:
|
||||||
|
#BronzeShovel
|
||||||
|
X12007:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12004
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 197
|
||||||
|
#MithrilShovel
|
||||||
|
X12048:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 2479
|
||||||
|
#MallornShovel
|
||||||
|
X12073:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X1801
|
||||||
|
Repair_Material_Data_Value: 1
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 121
|
||||||
|
#ElvenShovel
|
||||||
|
X12078:
|
||||||
|
XP_Modifer: 2
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: false
|
||||||
|
Repair_Material: X12082
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 313
|
||||||
|
#DwarvenShovel
|
||||||
|
X12113:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12112
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 451
|
||||||
|
#UrukShovel
|
||||||
|
X12148:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12147
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 391
|
||||||
|
#OrcShovel
|
||||||
|
X12121:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12036
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 261
|
||||||
|
|
||||||
|
Swords:
|
||||||
|
#Uruk Dagger
|
||||||
|
X12153:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12147
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 313
|
||||||
|
#Poisoned urukd agger
|
||||||
|
X12154:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12147
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 313
|
||||||
|
#Uruk Spear
|
||||||
|
X12157:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12147
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 391
|
||||||
|
#Rohirric Sword
|
||||||
|
X12181:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: false
|
||||||
|
Repair_Material: X12147
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 251
|
||||||
|
#Rohirric Dagger
|
||||||
|
X12182:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: false
|
||||||
|
Repair_Material: X12147
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 201
|
||||||
|
#Rohirric Spear
|
||||||
|
X12183:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: false
|
||||||
|
Repair_Material: X12147
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 251
|
||||||
|
#Dunlending Spear
|
||||||
|
X12212:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: false
|
||||||
|
Repair_Material: X12147
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 251
|
||||||
|
#Uruk Scimitar
|
||||||
|
X12151:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12147
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 391
|
||||||
|
#Mithril Dagger
|
||||||
|
X12137:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 1983
|
||||||
|
#Iron Dagger
|
||||||
|
X12136:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 201
|
||||||
|
#Dwarven Dagger
|
||||||
|
X12118:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12112
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 361
|
||||||
|
#Dwarven Sword
|
||||||
|
X12116:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12112
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 451
|
||||||
|
#Elven Sword
|
||||||
|
X12081:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: false
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 313
|
||||||
|
#Elven Spear
|
||||||
|
X12083:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: false
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 313
|
||||||
|
#Anduril
|
||||||
|
X12070:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 4
|
||||||
|
Repairable: false
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 313
|
||||||
|
#Mallorn Sword
|
||||||
|
X12076:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X1801
|
||||||
|
Repair_Material_Data_Value: 1
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 121
|
||||||
|
#Mithril Spear
|
||||||
|
X12069:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 4
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 2479
|
||||||
|
#Iron Spear
|
||||||
|
X12068:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: IRON_INGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 251
|
||||||
|
#Orc Spear
|
||||||
|
X12066:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12036
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 261
|
||||||
|
#Bronze Spear
|
||||||
|
X12067:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12004
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 197
|
||||||
|
#Gondor Spear
|
||||||
|
X12065:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: false
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 281
|
||||||
|
#Gondor Sword
|
||||||
|
X12056:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: false
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 281
|
||||||
|
#Orc Scimitar
|
||||||
|
X12031:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12036
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 261
|
||||||
|
#Steel Sword
|
||||||
|
X26862:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X26857
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 751
|
||||||
|
#Bronze Sword
|
||||||
|
X12010:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12004
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 197
|
||||||
|
#Mithril Sword
|
||||||
|
X12051:
|
||||||
|
XP_Modifer: 1
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 4
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12006
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 2479
|
||||||
14
extras/mods/1.6.x/advancedgenetics.tools.yml
Normal file
14
extras/mods/1.6.x/advancedgenetics.tools.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Up to date as of Advanced Genetics 1.4.3
|
||||||
|
Bows:
|
||||||
|
# Genetic
|
||||||
|
X31179:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X31197
|
||||||
|
Repair_Material_Pretty_Name: "Cell"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 1501
|
||||||
9
extras/mods/1.6.x/appliedenergistics.blocks.yml
Normal file
9
extras/mods/1.6.x/appliedenergistics.blocks.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Possibly incomplete. Only covers ores
|
||||||
|
# Up to date as of Applied Energistics rv14-finale3
|
||||||
|
Mining:
|
||||||
|
# Certus Quartz Ore
|
||||||
|
X4076|0:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
65
extras/mods/1.6.x/appliedenergistics.tools.yml
Normal file
65
extras/mods/1.6.x/appliedenergistics.tools.yml
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Up to date as of Applied Energistics rv14-finale3
|
||||||
|
Axes:
|
||||||
|
# Quartz
|
||||||
|
X4365:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X4362
|
||||||
|
Repair_Material_Pretty_Name: "Certus Quartz"
|
||||||
|
Repair_Material_Data_Value: 6
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 250
|
||||||
|
|
||||||
|
Hoes:
|
||||||
|
# Quartz
|
||||||
|
X4366:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X4362
|
||||||
|
Repair_Material_Pretty_Name: "Certus Quartz"
|
||||||
|
Repair_Material_Data_Value: 6
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
|
||||||
|
Pickaxes:
|
||||||
|
# Quartz
|
||||||
|
X4368:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X4362
|
||||||
|
Repair_Material_Pretty_Name: "Certus Quartz"
|
||||||
|
Repair_Material_Data_Value: 6
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 250
|
||||||
|
|
||||||
|
Shovels:
|
||||||
|
# Quartz
|
||||||
|
X4367:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X4362
|
||||||
|
Repair_Material_Pretty_Name: "Certus Quartz"
|
||||||
|
Repair_Material_Data_Value: 6
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 750
|
||||||
|
|
||||||
|
Swords:
|
||||||
|
# Quartz
|
||||||
|
X4369:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X4362
|
||||||
|
Repair_Material_Pretty_Name: "Certus Quartz"
|
||||||
|
Repair_Material_Data_Value: 6
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 250
|
||||||
9
extras/mods/1.6.x/bigreactors.blocks.yml
Normal file
9
extras/mods/1.6.x/bigreactors.blocks.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Possibly incomplete. Only covers ores
|
||||||
|
# Up to date as of Big Reactors 0.3.4A2
|
||||||
|
Mining:
|
||||||
|
# Yellorite
|
||||||
|
X1750|0:
|
||||||
|
XP_Gain: 300
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
77
extras/mods/1.6.x/biomesoplenty.armor.yml
Normal file
77
extras/mods/1.6.x/biomesoplenty.armor.yml
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Up to date as of BoP 1.2.1.434
|
||||||
|
Boots:
|
||||||
|
# Wading
|
||||||
|
X21269:
|
||||||
|
Repairable: false
|
||||||
|
Durability: 9999
|
||||||
|
# Muddy
|
||||||
|
X21283:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X21263
|
||||||
|
Repair_Material_Pretty_Name: "Mud Ball"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 4
|
||||||
|
Durability: 26
|
||||||
|
# Amethyst
|
||||||
|
X21293:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X21264
|
||||||
|
Repair_Material_Pretty_Name: "Amethyst"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 4
|
||||||
|
Durability: 520
|
||||||
|
|
||||||
|
Chestplates:
|
||||||
|
# Muddy
|
||||||
|
X21281:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X21263
|
||||||
|
Repair_Material_Pretty_Name: "Mud Ball"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 8
|
||||||
|
Durability: 32
|
||||||
|
# Amethyst
|
||||||
|
X21291:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X21264
|
||||||
|
Repair_Material_Pretty_Name: "Amethyst"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 8
|
||||||
|
Durability: 640
|
||||||
|
|
||||||
|
Helmets:
|
||||||
|
# Muddy
|
||||||
|
X21280:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X21263
|
||||||
|
Repair_Material_Pretty_Name: "Mud Ball"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 5
|
||||||
|
Durability: 22
|
||||||
|
# Amethyst
|
||||||
|
X21290:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X21264
|
||||||
|
Repair_Material_Pretty_Name: "Amethyst"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 5
|
||||||
|
Durability: 440
|
||||||
|
|
||||||
|
Leggings:
|
||||||
|
# Muddy
|
||||||
|
X21280:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X21263
|
||||||
|
Repair_Material_Pretty_Name: "Mud Ball"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 7
|
||||||
|
Durability: 30
|
||||||
|
# Amethyst
|
||||||
|
X21290:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X21264
|
||||||
|
Repair_Material_Pretty_Name: "Amethyst"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 7
|
||||||
|
Durability: 600
|
||||||
44
extras/mods/1.6.x/biomesoplenty.blocks.yml
Normal file
44
extras/mods/1.6.x/biomesoplenty.blocks.yml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Incomplete! Only covers ores
|
||||||
|
# Up to date as of BoP 1.2.1.434
|
||||||
|
Mining:
|
||||||
|
# Red Rock
|
||||||
|
X162|0:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Amethyst
|
||||||
|
X1921|0:
|
||||||
|
XP_Gain: 200
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Ruby
|
||||||
|
X1921|2:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Peridot
|
||||||
|
X1921|4:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Topaz
|
||||||
|
X1921|6:
|
||||||
|
XP_Gain: 200
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Tanzanite
|
||||||
|
X1921|8:
|
||||||
|
XP_Gain: 200
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Malachite
|
||||||
|
X1921|10:
|
||||||
|
XP_Gain: 200
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Sapphire
|
||||||
|
X1921|12:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
121
extras/mods/1.6.x/biomesoplenty.tools.yml
Normal file
121
extras/mods/1.6.x/biomesoplenty.tools.yml
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Up to date as of BoP 1.2.1.434
|
||||||
|
Axes:
|
||||||
|
# Amethyst
|
||||||
|
X21287:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 4
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X21264
|
||||||
|
Repair_Material_Pretty_Name: "Amethyst"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 2013
|
||||||
|
# Muddy
|
||||||
|
X21277:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X21263
|
||||||
|
Repair_Material_Pretty_Name: "Mud Ball"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 32
|
||||||
|
|
||||||
|
Hoes:
|
||||||
|
# Amethyst
|
||||||
|
X21288:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 4
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X21264
|
||||||
|
Repair_Material_Pretty_Name: "Amethyst"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 2013
|
||||||
|
# Muddy
|
||||||
|
X21278:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X21263
|
||||||
|
Repair_Material_Pretty_Name: "Mud Ball"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 32
|
||||||
|
|
||||||
|
Pickaxes:
|
||||||
|
# Amethyst
|
||||||
|
X21286:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 4
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X21264
|
||||||
|
Repair_Material_Pretty_Name: "Amethyst"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 2013
|
||||||
|
# Muddy
|
||||||
|
X21276:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X21263
|
||||||
|
Repair_Material_Pretty_Name: "Mud Ball"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 32
|
||||||
|
|
||||||
|
Shovels:
|
||||||
|
# Amethyst
|
||||||
|
X21285:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 4
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X21264
|
||||||
|
Repair_Material_Pretty_Name: "Amethyst"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 2013
|
||||||
|
# Muddy
|
||||||
|
X21275:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X21263
|
||||||
|
Repair_Material_Pretty_Name: "Mud Ball"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 32
|
||||||
|
|
||||||
|
Swords:
|
||||||
|
# Amethyst
|
||||||
|
X21284:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 4
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X21264
|
||||||
|
Repair_Material_Pretty_Name: "Amethyst"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 2013
|
||||||
|
# Muddy
|
||||||
|
X21274:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X21263
|
||||||
|
Repair_Material_Pretty_Name: "Mud Ball"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 32
|
||||||
31
extras/mods/1.6.x/emasher.armor.yml
Normal file
31
extras/mods/1.6.x/emasher.armor.yml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Up to date as of Emasher Resource 1.2.3.5
|
||||||
|
Boots:
|
||||||
|
# Hemp
|
||||||
|
X9301:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X9291
|
||||||
|
Repair_Material_Pretty_Name: "Hemp"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 4
|
||||||
|
Durability: 65
|
||||||
|
|
||||||
|
Chestplates:
|
||||||
|
# Hemp
|
||||||
|
X9299:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X9291
|
||||||
|
Repair_Material_Pretty_Name: "Hemp"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 8
|
||||||
|
Durability: 80
|
||||||
|
|
||||||
|
Leggings:
|
||||||
|
# Hemp
|
||||||
|
X9300:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X9291
|
||||||
|
Repair_Material_Pretty_Name: "Hemp"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 7
|
||||||
|
Durability: 75
|
||||||
44
extras/mods/1.6.x/emasher.blocks.yml
Normal file
44
extras/mods/1.6.x/emasher.blocks.yml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Possibly incomplete. Only covers ores
|
||||||
|
# Up to date as of Emasher Resource 1.2.3.5
|
||||||
|
Mining:
|
||||||
|
# Bauxite
|
||||||
|
X1565|0:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Cassiterite
|
||||||
|
X1565|1:
|
||||||
|
XP_Gain: 175
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Emery
|
||||||
|
X1565|2:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Galena
|
||||||
|
X1565|3:
|
||||||
|
XP_Gain: 300
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Native Copper
|
||||||
|
X1565|4:
|
||||||
|
XP_Gain: 175
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Petlandite
|
||||||
|
X1565|5:
|
||||||
|
XP_Gain: 300
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Ruby
|
||||||
|
X1565|6:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Sapphire
|
||||||
|
X1565|7:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
182
extras/mods/1.6.x/extrabiomesxl.blocks.yml
Executable file
182
extras/mods/1.6.x/extrabiomesxl.blocks.yml
Executable file
@@ -0,0 +1,182 @@
|
|||||||
|
# Config created by Dragyn
|
||||||
|
# Created For ExtrabiomesXL-universal-1.6.4-3.14.5
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Custom Excavation Blocks
|
||||||
|
###
|
||||||
|
Excavation:
|
||||||
|
# Quicksand
|
||||||
|
X2214|0:
|
||||||
|
XP_Gain: 40
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Custom Herbalism Blocks
|
||||||
|
###
|
||||||
|
Herbalism:
|
||||||
|
# Cattails
|
||||||
|
X2201|0:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
# Hydrangea
|
||||||
|
X2202|1:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
# Buttercups
|
||||||
|
X2202|2:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
# Lavender
|
||||||
|
X2202|3:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
# Tiny Cactus
|
||||||
|
X2202|4:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
# Toadstool
|
||||||
|
X2202|6:
|
||||||
|
XP_Gain: 150
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
# Calla Lillies
|
||||||
|
X2202|7:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
#
|
||||||
|
# Settings for Custom Mining Blocks
|
||||||
|
###
|
||||||
|
Mining:
|
||||||
|
X254|0:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
|
||||||
|
X254|1:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Custom Woodcutting Blocks
|
||||||
|
###
|
||||||
|
Woodcutting:
|
||||||
|
# Fir
|
||||||
|
X2208|0:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Acacia
|
||||||
|
X2208|1:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Cypress
|
||||||
|
X2208|2:
|
||||||
|
XP_Gain: 90
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Japanese Maple
|
||||||
|
X2208|3:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Redwood Quarter
|
||||||
|
X2209|0:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X2211|0:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X2212|0:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X2213|0:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Fir Quarters
|
||||||
|
X2209|1:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X2211|1:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X2212|1:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X2213|1:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Oak Quarters
|
||||||
|
X2209|2:
|
||||||
|
XP_Gain: 70
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X2211|2:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X2212|2:
|
||||||
|
XP_Gain: 70
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X2213|2:
|
||||||
|
XP_Gain: 70
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Acacia
|
||||||
|
X2209|1:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Cypress
|
||||||
|
X2209|2:
|
||||||
|
XP_Gain: 90
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Bald Cypress Quarter
|
||||||
|
X2225|0:
|
||||||
|
XP_Gain: 90
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Bald Cypress Elbow
|
||||||
|
X2227|0:
|
||||||
|
XP_Gain: 90
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Bald Cypress Log
|
||||||
|
X2231|2:
|
||||||
|
XP_Gain: 90
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Rainbow Eucalyptus
|
||||||
|
X2228|0:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X2229|0:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X2231|0:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Autumn Log
|
||||||
|
X2231|1:
|
||||||
|
XP_Gain: 90
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Sakura Log
|
||||||
|
X2238|0:
|
||||||
|
XP_Gain: 90
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
54
extras/mods/1.6.x/extrautilities.tools.yml
Normal file
54
extras/mods/1.6.x/extrautilities.tools.yml
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Up to date as of Extra Utilities 1.0.3c
|
||||||
|
Axes:
|
||||||
|
# Healing
|
||||||
|
X10264:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 4
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X10258
|
||||||
|
Repair_Material_Pretty_Name: "Unstable Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 1561
|
||||||
|
|
||||||
|
Hoes:
|
||||||
|
# Reversing
|
||||||
|
X10265:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 4
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X10258
|
||||||
|
Repair_Material_Pretty_Name: "Unstable Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 1561
|
||||||
|
|
||||||
|
Pickaxes:
|
||||||
|
# Destruction
|
||||||
|
X10263:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 4
|
||||||
|
Repairable: false
|
||||||
|
Durability: 6244
|
||||||
|
|
||||||
|
Shovels:
|
||||||
|
# Erosion
|
||||||
|
X10262:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 4
|
||||||
|
Repairable: false
|
||||||
|
Durability: 6244
|
||||||
|
|
||||||
|
Swords:
|
||||||
|
# Etheric
|
||||||
|
X10261:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 4
|
||||||
|
Repairable: false
|
||||||
|
Durability: 1561
|
||||||
9
extras/mods/1.6.x/factorization.blocks.yml
Normal file
9
extras/mods/1.6.x/factorization.blocks.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Possibly incomplete. Only covers ores
|
||||||
|
# Up to date as of Factorization 0.8.34
|
||||||
|
Mining:
|
||||||
|
# Dark Iron Ore
|
||||||
|
X1004|0:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
19
extras/mods/1.6.x/forestry.blocks.yml
Normal file
19
extras/mods/1.6.x/forestry.blocks.yml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Possibly incomplete. Only covers ores
|
||||||
|
# Up to date as of Forestry 2.3.1.1
|
||||||
|
Mining:
|
||||||
|
# Apatite
|
||||||
|
X1398|0:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Copper
|
||||||
|
X1398|1:
|
||||||
|
XP_Gain: 175
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Tin
|
||||||
|
X1398|2:
|
||||||
|
XP_Gain: 175
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
27
extras/mods/1.6.x/forestry.tools.yml
Normal file
27
extras/mods/1.6.x/forestry.tools.yml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Up to date as of Forestry 2.3.1.1
|
||||||
|
Pickaxes:
|
||||||
|
# Survivalist
|
||||||
|
X13261:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X5261
|
||||||
|
Repair_Material_Pretty_Name: "Bronze Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 200
|
||||||
|
|
||||||
|
Shovels:
|
||||||
|
# Survivalist
|
||||||
|
X13264:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X5261
|
||||||
|
Repair_Material_Pretty_Name: "Bronze Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 200
|
||||||
71
extras/mods/1.6.x/galacticraft.armor.yml
Executable file
71
extras/mods/1.6.x/galacticraft.armor.yml
Executable file
@@ -0,0 +1,71 @@
|
|||||||
|
# Config created by Dragyn
|
||||||
|
# Created For Galacticraft-1.6.4-2.0.7.904 and Galacticraft-Planets-1.6.4-2.0.7.904
|
||||||
|
#
|
||||||
|
# Settings for Boots
|
||||||
|
###
|
||||||
|
Boots:
|
||||||
|
# Heavy Duty
|
||||||
|
X10149:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X10150
|
||||||
|
Repair_Material_Data_Value: 9
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
X10171:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X10161
|
||||||
|
Repair_Material_Data_Value: 2
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 999
|
||||||
|
#
|
||||||
|
# Settings for Chestplates
|
||||||
|
###
|
||||||
|
Chestplates:
|
||||||
|
# Heavy Duty
|
||||||
|
X10147:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X10150
|
||||||
|
Repair_Material_Data_Value: 9
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
X10169:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X10161
|
||||||
|
Repair_Material_Data_Value: 2
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 999
|
||||||
|
#
|
||||||
|
# Settings for Helmets
|
||||||
|
###
|
||||||
|
Helmets:
|
||||||
|
# Heavy Duty
|
||||||
|
X10146:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X10150
|
||||||
|
Repair_Material_Data_Value: 9
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
X10168:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X10161
|
||||||
|
Repair_Material_Data_Value: 2
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 999
|
||||||
|
#
|
||||||
|
# Settings for Leggings
|
||||||
|
###
|
||||||
|
Leggings:
|
||||||
|
# Heavy Duty
|
||||||
|
X10148:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X10150
|
||||||
|
Repair_Material_Data_Value: 9
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
X10170:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X10161
|
||||||
|
Repair_Material_Data_Value: 2
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 999
|
||||||
|
|
||||||
98
extras/mods/1.6.x/galacticraft.blocks.yml
Executable file
98
extras/mods/1.6.x/galacticraft.blocks.yml
Executable file
@@ -0,0 +1,98 @@
|
|||||||
|
# Config created by Dragyn
|
||||||
|
# Created For Galacticraft-1.6.4-2.0.7.904 and Galacticraft-Planets-1.6.4-2.0.7.904
|
||||||
|
#
|
||||||
|
# Settings for Custom Excavation Blocks
|
||||||
|
###
|
||||||
|
Excavation:
|
||||||
|
# Dirt
|
||||||
|
X3347|3:
|
||||||
|
XP_Gain: 40
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Block_2|0:
|
||||||
|
XP_Gain: 99
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Custom Mining Blocks
|
||||||
|
###
|
||||||
|
Mining:
|
||||||
|
# Copper Ore
|
||||||
|
X3347|0:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
X3372|5:
|
||||||
|
XP_Gain: 450
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
X3390|0:
|
||||||
|
XP_Gain: 550
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Tin Ore
|
||||||
|
X3347|1:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
X3372|6:
|
||||||
|
XP_Gain: 450
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
X3390|1:
|
||||||
|
XP_Gain: 550
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Aluminum Ore
|
||||||
|
X3372|7:
|
||||||
|
XP_Gain: 450
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Silicon Ore
|
||||||
|
X3372|8:
|
||||||
|
XP_Gain: 450
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Cheese Ore
|
||||||
|
X3347|2:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Iron Ore
|
||||||
|
X3390|3:
|
||||||
|
XP_Gain: 550
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Desh Ore
|
||||||
|
X3390|2:
|
||||||
|
XP_Gain: 600
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Moon Stone
|
||||||
|
X3347|4:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Moon Turf
|
||||||
|
X3347|5:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Mars Cobblestone
|
||||||
|
X3390|4:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Mars Rock/Stone
|
||||||
|
X3390|5:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X3390|6:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X3390|9:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
|
||||||
123
extras/mods/1.6.x/galacticraft.tools.yml
Executable file
123
extras/mods/1.6.x/galacticraft.tools.yml
Executable file
@@ -0,0 +1,123 @@
|
|||||||
|
# Config created by Dragyn
|
||||||
|
# Created For Galacticraft-1.6.4-2.0.7.904 and Galacticraft-Planets-1.6.4-2.0.7.904
|
||||||
|
#
|
||||||
|
# Settings for Axes
|
||||||
|
###
|
||||||
|
Axes:
|
||||||
|
# Heavy Duty
|
||||||
|
X10145:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X10150
|
||||||
|
Repair_Material_Data_Value: 9
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Desh
|
||||||
|
X10167:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: 10161
|
||||||
|
Repair_Material_Data_Value: 2
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 1000
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Hoes
|
||||||
|
###
|
||||||
|
Hoes:
|
||||||
|
# Heavy Duty
|
||||||
|
X10144:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X10150
|
||||||
|
Repair_Material_Data_Value: 9
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Desh
|
||||||
|
X10166:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: 10161
|
||||||
|
Repair_Material_Data_Value: 2
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 1000
|
||||||
|
#
|
||||||
|
# Settings for Pickaxes
|
||||||
|
###
|
||||||
|
Pickaxes:
|
||||||
|
# Heavy Duty
|
||||||
|
X10142:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X10150
|
||||||
|
Repair_Material_Data_Value: 9
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Desh
|
||||||
|
X10164:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: 10161
|
||||||
|
Repair_Material_Data_Value: 2
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 1000
|
||||||
|
#
|
||||||
|
# Settings for Shovels
|
||||||
|
###
|
||||||
|
Shovels:
|
||||||
|
# Heavy Duty
|
||||||
|
X10143:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X10150
|
||||||
|
Repair_Material_Data_Value: 9
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Desh
|
||||||
|
X10165:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: 10161
|
||||||
|
Repair_Material_Data_Value: 2
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 1000
|
||||||
|
#
|
||||||
|
# Settings for Swords
|
||||||
|
###
|
||||||
|
Swords:
|
||||||
|
# Heavy Duty
|
||||||
|
X10141:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 4
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X10150
|
||||||
|
Repair_Material_Data_Value: 9
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Desh
|
||||||
|
X10163:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: 10161
|
||||||
|
Repair_Material_Data_Value: 2
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 1000
|
||||||
1018
extras/mods/1.6.x/metallurgy3.armor.yml
Executable file
1018
extras/mods/1.6.x/metallurgy3.armor.yml
Executable file
File diff suppressed because it is too large
Load Diff
185
extras/mods/1.6.x/metallurgy3.blocks.yml
Executable file
185
extras/mods/1.6.x/metallurgy3.blocks.yml
Executable file
@@ -0,0 +1,185 @@
|
|||||||
|
# Config created by Dragyn
|
||||||
|
# Created For Metallurgy-1.6.4-3.3.1
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Settings for Custom Mining Blocks
|
||||||
|
###
|
||||||
|
Mining:
|
||||||
|
# Copper
|
||||||
|
X900|0:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Tin
|
||||||
|
X900|1:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Zinc
|
||||||
|
X902|0:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Silver
|
||||||
|
X902|1:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Platinum
|
||||||
|
X902|3:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
|
||||||
|
# NETHER ORES
|
||||||
|
# Ignatius
|
||||||
|
X903|0:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Shadow Iron
|
||||||
|
X903|1:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Lemurite
|
||||||
|
X903|2:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Midasium
|
||||||
|
X903|3:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Vyroxeres
|
||||||
|
X903|4:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Ceruclase
|
||||||
|
X903|5:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Alduorite
|
||||||
|
X903|6:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Kalendrite
|
||||||
|
X903|7:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Vulcanite
|
||||||
|
X903|8:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Sanguinite
|
||||||
|
X903|9:
|
||||||
|
XP_Gain: 450
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
|
||||||
|
# Manganese
|
||||||
|
X900|2:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Eximite
|
||||||
|
X900|5:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Meutoite
|
||||||
|
X900|6:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Sulfur
|
||||||
|
X905|7:
|
||||||
|
XP_Gain: 150
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Phosphorite
|
||||||
|
X905|8:
|
||||||
|
XP_Gain: 150
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Saltpeter
|
||||||
|
X905|9:
|
||||||
|
XP_Gain: 150
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Magnesium
|
||||||
|
X905|10:
|
||||||
|
XP_Gain: 150
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Bitumen
|
||||||
|
X905|11:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Potash
|
||||||
|
X905|12:
|
||||||
|
XP_Gain: 150
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Prometheum
|
||||||
|
X906|0:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Deep Iron
|
||||||
|
X906|1:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Infuscolium
|
||||||
|
X906|2:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Oureclase
|
||||||
|
X906|4:
|
||||||
|
XP_Gain: 650
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Astral Silver
|
||||||
|
X906|5:
|
||||||
|
XP_Gain: 650
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Carmot
|
||||||
|
X906|6:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Mithril
|
||||||
|
X906|7:
|
||||||
|
XP_Gain: 750
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Rubracium
|
||||||
|
X906|8:
|
||||||
|
XP_Gain: 800
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Orichalcum
|
||||||
|
X906|11:
|
||||||
|
XP_Gain: 900
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Adamantine
|
||||||
|
X906|13:
|
||||||
|
XP_Gain: 1000
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Atlarus
|
||||||
|
X906|14:
|
||||||
|
XP_Gain: 1000
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
1807
extras/mods/1.6.x/metallurgy3.tools.yml
Normal file
1807
extras/mods/1.6.x/metallurgy3.tools.yml
Normal file
File diff suppressed because it is too large
Load Diff
11
extras/mods/1.6.x/minefactoryreloaded.armor.yml
Normal file
11
extras/mods/1.6.x/minefactoryreloaded.armor.yml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Up to date as of Minefactory Reloaded 2.7.9 Final
|
||||||
|
Boots:
|
||||||
|
# Plastic
|
||||||
|
X12306:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12249
|
||||||
|
Repair_Material_Pretty_Name: "Plastic Sheets"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 4
|
||||||
|
Durability: 39
|
||||||
41
extras/mods/1.6.x/natura.armor.yml
Normal file
41
extras/mods/1.6.x/natura.armor.yml
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Up to date as of Natura 2.1.14
|
||||||
|
Boots:
|
||||||
|
# Impskin
|
||||||
|
X12712:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12660
|
||||||
|
Repair_Material_Pretty_Name: "Imp Leather"
|
||||||
|
Repair_Material_Data_Value: 6
|
||||||
|
Repair_Material_Quantity: 4
|
||||||
|
Durability: 429
|
||||||
|
|
||||||
|
Chestplates:
|
||||||
|
# Impskin
|
||||||
|
X12710:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12660
|
||||||
|
Repair_Material_Pretty_Name: "Imp Leather"
|
||||||
|
Repair_Material_Data_Value: 6
|
||||||
|
Repair_Material_Quantity: 8
|
||||||
|
Durability: 528
|
||||||
|
|
||||||
|
Helmets:
|
||||||
|
# Impskin
|
||||||
|
X12709:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12660
|
||||||
|
Repair_Material_Pretty_Name: "Imp Leather"
|
||||||
|
Repair_Material_Data_Value: 6
|
||||||
|
Repair_Material_Quantity: 5
|
||||||
|
Durability: 363
|
||||||
|
|
||||||
|
Leggings:
|
||||||
|
# Impskin
|
||||||
|
X12709:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12660
|
||||||
|
Repair_Material_Pretty_Name: "Imp Leather"
|
||||||
|
Repair_Material_Data_Value: 6
|
||||||
|
Repair_Material_Quantity: 7
|
||||||
|
Durability: 495
|
||||||
272
extras/mods/1.6.x/natura.tools.yml
Normal file
272
extras/mods/1.6.x/natura.tools.yml
Normal file
@@ -0,0 +1,272 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Up to date as of Natura 2.1.14
|
||||||
|
Axes:
|
||||||
|
# Bloodwood
|
||||||
|
X12685:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X3262
|
||||||
|
Repair_Material_Pretty_Name: "Bloodwood Planks"
|
||||||
|
Repair_Material_Data_Value: 4
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 350
|
||||||
|
# Darkwood
|
||||||
|
X12689:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X3262
|
||||||
|
Repair_Material_Pretty_Name: "Darkwood Planks"
|
||||||
|
Repair_Material_Data_Value: 11
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 131
|
||||||
|
# Fusewood
|
||||||
|
X12693:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X3262
|
||||||
|
Repair_Material_Pretty_Name: "Fusewood Planks"
|
||||||
|
Repair_Material_Data_Value: 12
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 250
|
||||||
|
# Ghostwood
|
||||||
|
X12681:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X3262
|
||||||
|
Repair_Material_Pretty_Name: "Ghostwood Planks"
|
||||||
|
Repair_Material_Data_Value: 2
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 59
|
||||||
|
# Quartz
|
||||||
|
X12697:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: QUARTZ_BLOCK
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 131
|
||||||
|
|
||||||
|
Bows:
|
||||||
|
# Bloodwood
|
||||||
|
X12706:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12677
|
||||||
|
Repair_Material_Pretty_Name: "Bloodwood Stick"
|
||||||
|
Repair_Material_Data_Value: 4
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 1501
|
||||||
|
# Darkwood
|
||||||
|
X12707:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12677
|
||||||
|
Repair_Material_Pretty_Name: "Darkwood Stick"
|
||||||
|
Repair_Material_Data_Value: 11
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 162
|
||||||
|
# Fusewood
|
||||||
|
X12708:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12677
|
||||||
|
Repair_Material_Pretty_Name: "Fusewood Stick"
|
||||||
|
Repair_Material_Data_Value: 12
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 28
|
||||||
|
# Ghostwood
|
||||||
|
X12705:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X12677
|
||||||
|
Repair_Material_Pretty_Name: "Ghostwood Stick"
|
||||||
|
Repair_Material_Data_Value: 2
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 384
|
||||||
|
|
||||||
|
|
||||||
|
Pickaxes:
|
||||||
|
# Bloodwood
|
||||||
|
X12683:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X3262
|
||||||
|
Repair_Material_Pretty_Name: "Bloodwood Planks"
|
||||||
|
Repair_Material_Data_Value: 4
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 350
|
||||||
|
# Darkwood
|
||||||
|
X12687:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X3262
|
||||||
|
Repair_Material_Pretty_Name: "Darkwood Planks"
|
||||||
|
Repair_Material_Data_Value: 11
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 131
|
||||||
|
# Fusewood
|
||||||
|
X12691:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X3262
|
||||||
|
Repair_Material_Pretty_Name: "Fusewood Planks"
|
||||||
|
Repair_Material_Data_Value: 12
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 250
|
||||||
|
# Ghostwood
|
||||||
|
X12679:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X3262
|
||||||
|
Repair_Material_Pretty_Name: "Ghostwood Planks"
|
||||||
|
Repair_Material_Data_Value: 2
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 59
|
||||||
|
# Quartz
|
||||||
|
X12695:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: QUARTZ_BLOCK
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 131
|
||||||
|
|
||||||
|
Shovels:
|
||||||
|
# Bloodwood
|
||||||
|
X12684:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X3262
|
||||||
|
Repair_Material_Pretty_Name: "Bloodwood Planks"
|
||||||
|
Repair_Material_Data_Value: 4
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 350
|
||||||
|
# Darkwood
|
||||||
|
X12688:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X3262
|
||||||
|
Repair_Material_Pretty_Name: "Darkwood Planks"
|
||||||
|
Repair_Material_Data_Value: 11
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 131
|
||||||
|
# Fusewood
|
||||||
|
X12692:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X3262
|
||||||
|
Repair_Material_Pretty_Name: "Fusewood Planks"
|
||||||
|
Repair_Material_Data_Value: 12
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 250
|
||||||
|
# Ghostwood
|
||||||
|
X12680:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X3262
|
||||||
|
Repair_Material_Pretty_Name: "Ghostwood Planks"
|
||||||
|
Repair_Material_Data_Value: 2
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 59
|
||||||
|
# Quartz
|
||||||
|
X12696:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: QUARTZ_BLOCK
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 131
|
||||||
|
|
||||||
|
Swords:
|
||||||
|
# Bloodwood
|
||||||
|
X12682:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X3262
|
||||||
|
Repair_Material_Pretty_Name: "Bloodwood Planks"
|
||||||
|
Repair_Material_Data_Value: 4
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 350
|
||||||
|
# Darkwood
|
||||||
|
X12686:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X3262
|
||||||
|
Repair_Material_Pretty_Name: "Darkwood Planks"
|
||||||
|
Repair_Material_Data_Value: 11
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 131
|
||||||
|
# Fusewood
|
||||||
|
X12690:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X3262
|
||||||
|
Repair_Material_Pretty_Name: "Fusewood Planks"
|
||||||
|
Repair_Material_Data_Value: 12
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 250
|
||||||
|
# Ghostwood
|
||||||
|
X12678:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X3262
|
||||||
|
Repair_Material_Pretty_Name: "Ghostwood Planks"
|
||||||
|
Repair_Material_Data_Value: 2
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 59
|
||||||
|
# Quartz
|
||||||
|
X12694:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: QUARTZ_BLOCK
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 131
|
||||||
29
extras/mods/1.6.x/projectred.blocks.yml
Normal file
29
extras/mods/1.6.x/projectred.blocks.yml
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Possibly incomplete. Only covers ores
|
||||||
|
# Up to date as of Project Red 4.3.5.30
|
||||||
|
Mining:
|
||||||
|
# Ruby
|
||||||
|
X2130|0:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Sapphire
|
||||||
|
X2130|1:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Peridot
|
||||||
|
X2130|2:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Marble
|
||||||
|
X2131|0:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Basalt
|
||||||
|
X2131|3:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
176
extras/mods/1.6.x/projectred.tools.yml
Normal file
176
extras/mods/1.6.x/projectred.tools.yml
Normal file
@@ -0,0 +1,176 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Up to date as of Project Red 4.3.5.30
|
||||||
|
Axes:
|
||||||
|
# Ruby
|
||||||
|
X9353:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X9281
|
||||||
|
Repair_Material_Pretty_Name: "Ruby"
|
||||||
|
Repair_Material_Data_Value: 37
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 500
|
||||||
|
# Sapphire
|
||||||
|
X9354:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X9281
|
||||||
|
Repair_Material_Pretty_Name: "Sapphire"
|
||||||
|
Repair_Material_Data_Value: 38
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 500
|
||||||
|
# Peridot
|
||||||
|
X9355:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X9281
|
||||||
|
Repair_Material_Pretty_Name: "Peridot"
|
||||||
|
Repair_Material_Data_Value: 39
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 500
|
||||||
|
|
||||||
|
Hoes:
|
||||||
|
# Ruby
|
||||||
|
X9356:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X9281
|
||||||
|
Repair_Material_Pretty_Name: "Ruby"
|
||||||
|
Repair_Material_Data_Value: 37
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Sapphire
|
||||||
|
X9357:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X9281
|
||||||
|
Repair_Material_Pretty_Name: "Sapphire"
|
||||||
|
Repair_Material_Data_Value: 38
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Peridot
|
||||||
|
X9358:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X9281
|
||||||
|
Repair_Material_Pretty_Name: "Peridot"
|
||||||
|
Repair_Material_Data_Value: 39
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
|
||||||
|
Pickaxes:
|
||||||
|
# Ruby
|
||||||
|
X9359:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X9281
|
||||||
|
Repair_Material_Pretty_Name: "Ruby"
|
||||||
|
Repair_Material_Data_Value: 37
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 500
|
||||||
|
# Sapphire
|
||||||
|
X9360:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X9281
|
||||||
|
Repair_Material_Pretty_Name: "Sapphire"
|
||||||
|
Repair_Material_Data_Value: 38
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 500
|
||||||
|
# Peridot
|
||||||
|
X9361:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X9281
|
||||||
|
Repair_Material_Pretty_Name: "Peridot"
|
||||||
|
Repair_Material_Data_Value: 39
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 500
|
||||||
|
|
||||||
|
Shovels:
|
||||||
|
# Ruby
|
||||||
|
X9362:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X9281
|
||||||
|
Repair_Material_Pretty_Name: "Ruby"
|
||||||
|
Repair_Material_Data_Value: 37
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 500
|
||||||
|
# Sapphire
|
||||||
|
X9363:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X9281
|
||||||
|
Repair_Material_Pretty_Name: "Sapphire"
|
||||||
|
Repair_Material_Data_Value: 38
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 500
|
||||||
|
# Peridot
|
||||||
|
X9364:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X9281
|
||||||
|
Repair_Material_Pretty_Name: "Peridot"
|
||||||
|
Repair_Material_Data_Value: 39
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 500
|
||||||
|
|
||||||
|
Swords:
|
||||||
|
# Ruby
|
||||||
|
X9365:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X9281
|
||||||
|
Repair_Material_Pretty_Name: "Ruby"
|
||||||
|
Repair_Material_Data_Value: 37
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Sapphire
|
||||||
|
X9366:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X9281
|
||||||
|
Repair_Material_Pretty_Name: "Sapphire"
|
||||||
|
Repair_Material_Data_Value: 38
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Peridot
|
||||||
|
X9368:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X9281
|
||||||
|
Repair_Material_Pretty_Name: "Peridot"
|
||||||
|
Repair_Material_Data_Value: 39
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
49
extras/mods/1.6.x/railcraft.armor.yml
Executable file
49
extras/mods/1.6.x/railcraft.armor.yml
Executable file
@@ -0,0 +1,49 @@
|
|||||||
|
# Config wrote by Dragyn, updated by M1cr0man
|
||||||
|
# Up to date as of Railcraft 8.4.0.0
|
||||||
|
Boots:
|
||||||
|
# Steel
|
||||||
|
X7758:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X7796
|
||||||
|
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 4
|
||||||
|
Durability: 325
|
||||||
|
|
||||||
|
Chestplates:
|
||||||
|
# Steel
|
||||||
|
X7761:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X7796
|
||||||
|
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 8
|
||||||
|
Durability: 400
|
||||||
|
|
||||||
|
Helmets:
|
||||||
|
# Steel
|
||||||
|
X7759:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X7796
|
||||||
|
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 5
|
||||||
|
Durability: 275
|
||||||
|
|
||||||
|
Leggings:
|
||||||
|
# Steel
|
||||||
|
X7760:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X7796
|
||||||
|
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 7
|
||||||
|
Durability: 375
|
||||||
|
# Overalls
|
||||||
|
X7757:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: WOOL
|
||||||
|
Repair_Material_Pretty_Name: "Light Blue Wool"
|
||||||
|
Repair_Material_Data_Value: 3
|
||||||
|
Repair_Material_Quantity: 7
|
||||||
|
Durability: 75
|
||||||
103
extras/mods/1.6.x/railcraft.blocks.yml
Executable file
103
extras/mods/1.6.x/railcraft.blocks.yml
Executable file
@@ -0,0 +1,103 @@
|
|||||||
|
# Config created by Dragyn
|
||||||
|
# Created For Railcraft_1.6.2-8.1.0.0
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Settings for Custom Mining Blocks
|
||||||
|
###
|
||||||
|
Mining:
|
||||||
|
# Abyssal Stone
|
||||||
|
X457|6:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Quarried Stone
|
||||||
|
X457|7:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Sulfur
|
||||||
|
X458|0:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Saltpeter
|
||||||
|
X458|1:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Dark Diamond
|
||||||
|
X458|2:
|
||||||
|
XP_Gain: 750
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Dark Emerald
|
||||||
|
X458|3:
|
||||||
|
XP_Gain: 1000
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Dark Lapis
|
||||||
|
X458|4:
|
||||||
|
XP_Gain: 400
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Firestone
|
||||||
|
X458|5:
|
||||||
|
XP_Gain: 450
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Infernal Stone
|
||||||
|
X467|2:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X467|5:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Blood Stained Stone
|
||||||
|
X468|2:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X468|5:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Sandy Stone
|
||||||
|
X469|2:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X469|5:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Quarried Stone
|
||||||
|
X471|2:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X471|5:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Frost Bound Stone
|
||||||
|
X472|2:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X472|5:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
# Nether Stone
|
||||||
|
X475|2:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X475|5:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
|
||||||
|
|
||||||
66
extras/mods/1.6.x/railcraft.tools.yml
Executable file
66
extras/mods/1.6.x/railcraft.tools.yml
Executable file
@@ -0,0 +1,66 @@
|
|||||||
|
# Config wrote by Dragyn, updated by M1cr0man
|
||||||
|
# Up to date as of Railcraft 8.4.0.0
|
||||||
|
Axes:
|
||||||
|
# Steel
|
||||||
|
X7819:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X7796
|
||||||
|
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
|
||||||
|
Hoes:
|
||||||
|
# Steel
|
||||||
|
X7820:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X7796
|
||||||
|
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
|
||||||
|
Pickaxes:
|
||||||
|
# Steel
|
||||||
|
X7821:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X7796
|
||||||
|
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
|
||||||
|
Shovels:
|
||||||
|
# Steel
|
||||||
|
X7823:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X7796
|
||||||
|
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
|
||||||
|
Swords:
|
||||||
|
# Steel
|
||||||
|
X7824:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X7796
|
||||||
|
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
543
extras/mods/1.6.x/simcraft.blocks.yml
Executable file
543
extras/mods/1.6.x/simcraft.blocks.yml
Executable file
@@ -0,0 +1,543 @@
|
|||||||
|
# Config created by Dragyn
|
||||||
|
# Created For SimCraft 1.6.4
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Settings for Custom Herbalism Blocks
|
||||||
|
###
|
||||||
|
Herbalism:
|
||||||
|
X705|0:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X705|1:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X705|2:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X705|3:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X705|4:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X705|5:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X705|6:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X705|7:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X705|8:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X705|9:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X705|10:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X705|11:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X705|12:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X705|13:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X705|14:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X705|15:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X706|0:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X706|1:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X706|2:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X706|3:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X706|4:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X706|5:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X706|6:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X706|7:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X706|8:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X706|9:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X706|10:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X706|11:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X706|12:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X706|13:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X706|14:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X706|15:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X707|0:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X707|1:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X707|2:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X707|3:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X707|4:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X707|5:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X707|6:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X707|7:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X707|8:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X707|9:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X707|10:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X707|11:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X707|12:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X707|13:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X707|14:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
X707|15:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
#
|
||||||
|
# Settings for Custom Mining Blocks
|
||||||
|
###
|
||||||
|
Mining:
|
||||||
|
X700|0:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X700|1:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X700|2:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X700|3:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X700|4:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X700|5:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X700|6:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X700|7:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X700|8:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X700|9:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X700|10:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X700|11:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X700|12:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X700|13:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X700|14:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X700|15:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X701|0:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X701|1:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X701|2:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X701|3:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X701|4:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X701|5:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X701|6:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X701|7:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X701|8:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X701|9:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X701|10:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X701|11:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X701|12:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X701|13:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X701|14:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X701|15:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X702|0:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X702|1:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X702|2:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X702|3:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X702|4:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X702|5:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X702|6:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X702|7:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X702|8:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X702|9:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X702|10:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X702|11:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X702|12:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X702|13:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X702|14:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X702|15:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X703|0:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X703|1:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X703|2:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X703|3:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X703|4:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X703|5:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X703|6:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X703|7:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X703|8:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X703|9:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X703|10:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X703|11:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X703|12:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X703|13:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X703|14:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X703|15:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X704|0:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X704|1:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X704|2:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X704|3:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X704|4:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X704|5:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X704|6:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X704|7:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X704|8:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X704|9:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X704|10:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X704|11:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X704|12:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X704|13:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X704|14:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X704|15:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
#
|
||||||
|
# Settings for Custom Woodcutting Blocks
|
||||||
|
###
|
||||||
|
Woodcutting:
|
||||||
|
X708|0:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X708|1:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X708|2:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X708|3:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X708|4:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X708|5:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X708|6:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X708|7:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X708|8:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X708|9:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X708|10:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X708|11:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X1095|0:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X1095|1:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X1095|2:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
X1095|3:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
61
extras/mods/1.6.x/simcraft.tools.yml
Executable file
61
extras/mods/1.6.x/simcraft.tools.yml
Executable file
@@ -0,0 +1,61 @@
|
|||||||
|
# Config created by Dragyn
|
||||||
|
# Created For Railcraft_1.6.2-8.1.0.0
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Settings for Axes
|
||||||
|
###
|
||||||
|
Axes:
|
||||||
|
# Steel
|
||||||
|
X15787:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X15260
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Pickaxes
|
||||||
|
###
|
||||||
|
Pickaxes:
|
||||||
|
# Steel
|
||||||
|
X15788:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X15260
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
#
|
||||||
|
# Settings for Shovels
|
||||||
|
###
|
||||||
|
Shovels:
|
||||||
|
# Steel
|
||||||
|
X15789:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X15260
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
#
|
||||||
|
# Settings for Swords
|
||||||
|
###
|
||||||
|
Swords:
|
||||||
|
# Steel
|
||||||
|
X15786:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X15260
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
9
extras/mods/1.6.x/stargatetech2.blocks.yml
Normal file
9
extras/mods/1.6.x/stargatetech2.blocks.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Possibly incomplete. Only covers ores
|
||||||
|
# Up to date as of Stargate Tech 2 Alpha 0.7.3
|
||||||
|
Mining:
|
||||||
|
# Naquadah Ore
|
||||||
|
X1005|0:
|
||||||
|
XP_Gain: 300
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
41
extras/mods/1.6.x/thermalexpansion.armor.yml
Normal file
41
extras/mods/1.6.x/thermalexpansion.armor.yml
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Up to date as of Thermal Expansion 3.0.0.7
|
||||||
|
Boots:
|
||||||
|
# Invar
|
||||||
|
X31973:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X31978
|
||||||
|
Repair_Material_Pretty_Name: "Invar Ingot"
|
||||||
|
Repair_Material_Data_Value: 71
|
||||||
|
Repair_Material_Quantity: 4
|
||||||
|
Durability: 325
|
||||||
|
|
||||||
|
Chestplates:
|
||||||
|
# Invar
|
||||||
|
X31975:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X31978
|
||||||
|
Repair_Material_Pretty_Name: "Invar Ingot"
|
||||||
|
Repair_Material_Data_Value: 71
|
||||||
|
Repair_Material_Quantity: 8
|
||||||
|
Durability: 400
|
||||||
|
|
||||||
|
Helmets:
|
||||||
|
# Invar
|
||||||
|
X31976:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X31978
|
||||||
|
Repair_Material_Pretty_Name: "Invar Ingot"
|
||||||
|
Repair_Material_Data_Value: 71
|
||||||
|
Repair_Material_Quantity: 5
|
||||||
|
Durability: 275
|
||||||
|
|
||||||
|
Leggings:
|
||||||
|
# Invar
|
||||||
|
X31976:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X31978
|
||||||
|
Repair_Material_Pretty_Name: "Invar Ingot"
|
||||||
|
Repair_Material_Data_Value: 71
|
||||||
|
Repair_Material_Quantity: 7
|
||||||
|
Durability: 375
|
||||||
29
extras/mods/1.6.x/thermalexpansion.blocks.yml
Normal file
29
extras/mods/1.6.x/thermalexpansion.blocks.yml
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Possibly incomplete. Only covers ores
|
||||||
|
# Up to date as of Thermal Expansion 3.0.0.7
|
||||||
|
Mining:
|
||||||
|
# Copper
|
||||||
|
X4064|0:
|
||||||
|
XP_Gain: 175
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Tin
|
||||||
|
X4064|1:
|
||||||
|
XP_Gain: 175
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Silver
|
||||||
|
X4064|2:
|
||||||
|
XP_Gain: 300
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Lead
|
||||||
|
X4064|3:
|
||||||
|
XP_Gain: 300
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Ferrous
|
||||||
|
X4064|4:
|
||||||
|
XP_Gain: 300
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
66
extras/mods/1.6.x/thermalexpansion.tools.yml
Normal file
66
extras/mods/1.6.x/thermalexpansion.tools.yml
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Up to date as of Thermal Expansion 3.0.0.7
|
||||||
|
Axes:
|
||||||
|
# Invar
|
||||||
|
X31969:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X31978
|
||||||
|
Repair_Material_Pretty_Name: "Invar Ingot"
|
||||||
|
Repair_Material_Data_Value: 71
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 450
|
||||||
|
|
||||||
|
Hoes:
|
||||||
|
# Invar
|
||||||
|
X31968:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X31978
|
||||||
|
Repair_Material_Pretty_Name: "Invar Ingot"
|
||||||
|
Repair_Material_Data_Value: 71
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 450
|
||||||
|
|
||||||
|
Pickaxes:
|
||||||
|
# Invar
|
||||||
|
X31970:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X31978
|
||||||
|
Repair_Material_Pretty_Name: "Invar Ingot"
|
||||||
|
Repair_Material_Data_Value: 71
|
||||||
|
Repair_Material_Quantity: 3
|
||||||
|
Durability: 450
|
||||||
|
|
||||||
|
Shovels:
|
||||||
|
# Invar
|
||||||
|
X31971:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X31978
|
||||||
|
Repair_Material_Pretty_Name: "Invar Ingot"
|
||||||
|
Repair_Material_Data_Value: 71
|
||||||
|
Repair_Material_Quantity: 1
|
||||||
|
Durability: 450
|
||||||
|
|
||||||
|
Swords:
|
||||||
|
# Invar
|
||||||
|
X31972:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 3
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X31978
|
||||||
|
Repair_Material_Pretty_Name: "Invar Ingot"
|
||||||
|
Repair_Material_Data_Value: 71
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 450
|
||||||
74
extras/mods/1.6.x/tinkersconstruct.armor.yml
Normal file
74
extras/mods/1.6.x/tinkersconstruct.armor.yml
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Up to date as of Tinker's Construct 1.5.5.7
|
||||||
|
# Also covers Tinker's Steelworks 0.0.4.2-fix2
|
||||||
|
Boots:
|
||||||
|
# Wooden (Repaired with Oak Wood)
|
||||||
|
X14366:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: LOG
|
||||||
|
Repair_Material_Pretty_Name: "Oak Wood"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 4
|
||||||
|
Durability: 26
|
||||||
|
# Steel
|
||||||
|
X14771:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X14276
|
||||||
|
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||||
|
Repair_Material_Data_Value: 16
|
||||||
|
Repair_Material_Quantity: 4
|
||||||
|
Durability: 325
|
||||||
|
|
||||||
|
Chestplates:
|
||||||
|
# Wooden (Repaired with Oak Wood)
|
||||||
|
X14364:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: LOG
|
||||||
|
Repair_Material_Pretty_Name: "Oak Wood"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 8
|
||||||
|
Durability: 32
|
||||||
|
# Steel
|
||||||
|
X14769:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X14276
|
||||||
|
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||||
|
Repair_Material_Data_Value: 16
|
||||||
|
Repair_Material_Quantity: 8
|
||||||
|
Durability: 400
|
||||||
|
|
||||||
|
Helmets:
|
||||||
|
# Wooden (Repaired with Oak Wood)
|
||||||
|
X14362:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: LOG
|
||||||
|
Repair_Material_Pretty_Name: "Oak Wood"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 5
|
||||||
|
Durability: 22
|
||||||
|
# Steel
|
||||||
|
X14768:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X14276
|
||||||
|
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||||
|
Repair_Material_Data_Value: 16
|
||||||
|
Repair_Material_Quantity: 5
|
||||||
|
Durability: 275
|
||||||
|
|
||||||
|
Leggings:
|
||||||
|
# Wooden (Repaired with Oak Wood)
|
||||||
|
X14362:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: LOG
|
||||||
|
Repair_Material_Pretty_Name: "Oak Wood"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 7
|
||||||
|
Durability: 30
|
||||||
|
# Steel
|
||||||
|
X14768:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X14276
|
||||||
|
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||||
|
Repair_Material_Data_Value: 16
|
||||||
|
Repair_Material_Quantity: 7
|
||||||
|
Durability: 375
|
||||||
55
extras/mods/1.6.x/tinkersconstruct.blocks.yml
Normal file
55
extras/mods/1.6.x/tinkersconstruct.blocks.yml
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Possibly incomplete. Only covers ores
|
||||||
|
# Up to date as of Tinker's Construct 1.5.5.7
|
||||||
|
Excavation:
|
||||||
|
# Iron
|
||||||
|
X1488|0:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
# Gold
|
||||||
|
X1488|1:
|
||||||
|
XP_Gain: 350
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
# Copper
|
||||||
|
X1488|2:
|
||||||
|
XP_Gain: 175
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
# Tin
|
||||||
|
X1488|3:
|
||||||
|
XP_Gain: 175
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
# Aluminum
|
||||||
|
X1488|4:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
# Cobalt
|
||||||
|
X1488|5:
|
||||||
|
XP_Gain: 500
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
|
||||||
|
Mining:
|
||||||
|
# Cobalt
|
||||||
|
X1475|1:
|
||||||
|
XP_Gain: 500
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Ardite
|
||||||
|
X1475|2:
|
||||||
|
XP_Gain: 500
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Copper
|
||||||
|
X1475|3:
|
||||||
|
XP_Gain: 175
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Tin
|
||||||
|
X1475|4:
|
||||||
|
XP_Gain: 175
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
|
# Aluminium
|
||||||
|
X1475|5:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: true
|
||||||
149
extras/mods/1.6.x/tinkersconstruct.tools.yml
Normal file
149
extras/mods/1.6.x/tinkersconstruct.tools.yml
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
# Config wrote by M1cr0man
|
||||||
|
# Abilites for Pickaxes and Shovels disabled due to a bug
|
||||||
|
# Repair disabled as mcMMO does not support NBTTag - based tools
|
||||||
|
# Up to date as of Tinker's Construct 1.5.5.7
|
||||||
|
# Also covers Tinker's Steelworks 0.0.4.2-fix2
|
||||||
|
Axes:
|
||||||
|
# Hatchets
|
||||||
|
X14309:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: false
|
||||||
|
Durability: 500
|
||||||
|
# Mattocks
|
||||||
|
X14316:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: false
|
||||||
|
Durability: 500
|
||||||
|
# Lumber Axes
|
||||||
|
X14317:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: false
|
||||||
|
Durability: 500
|
||||||
|
# Battle Axes
|
||||||
|
X14327:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: false
|
||||||
|
Durability: 500
|
||||||
|
|
||||||
|
Bows:
|
||||||
|
# Shortbows
|
||||||
|
X14319:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: false
|
||||||
|
Durability: 500
|
||||||
|
|
||||||
|
Hoes:
|
||||||
|
# Mattocks
|
||||||
|
X14316:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: false
|
||||||
|
Durability: 500
|
||||||
|
# Scythes
|
||||||
|
X14323:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: false
|
||||||
|
Durability: 500
|
||||||
|
|
||||||
|
Pickaxes:
|
||||||
|
# Pickaxes
|
||||||
|
X14307:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: false
|
||||||
|
Tier: 2
|
||||||
|
Repairable: false
|
||||||
|
Durability: 500
|
||||||
|
# Hammers
|
||||||
|
X14326:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: false
|
||||||
|
Tier: 2
|
||||||
|
Repairable: false
|
||||||
|
Durability: 500
|
||||||
|
|
||||||
|
Shovels:
|
||||||
|
# Shovels
|
||||||
|
X14308:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: false
|
||||||
|
Tier: 2
|
||||||
|
Repairable: false
|
||||||
|
Durability: 500
|
||||||
|
# Mattocks
|
||||||
|
X14316:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: false
|
||||||
|
Tier: 2
|
||||||
|
Repairable: false
|
||||||
|
Durability: 500
|
||||||
|
# Excavators
|
||||||
|
X14325:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: false
|
||||||
|
Tier: 2
|
||||||
|
Repairable: false
|
||||||
|
Durability: 500
|
||||||
|
|
||||||
|
Swords:
|
||||||
|
# Broadswords
|
||||||
|
X14311:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: false
|
||||||
|
Durability: 500
|
||||||
|
# Longswords
|
||||||
|
X14312:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: false
|
||||||
|
Durability: 500
|
||||||
|
# Rapiers
|
||||||
|
X14313:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: false
|
||||||
|
Durability: 500
|
||||||
|
# Daggers
|
||||||
|
X14321:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: false
|
||||||
|
Durability: 500
|
||||||
|
# Cleavers
|
||||||
|
X14324:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: false
|
||||||
|
Durability: 500
|
||||||
|
# Battle Axes
|
||||||
|
X14327:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: false
|
||||||
|
Durability: 500
|
||||||
|
# Cutlasses
|
||||||
|
X14328:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 2
|
||||||
|
Repairable: false
|
||||||
|
Durability: 500
|
||||||
161
extras/mods/1.6.x/twilightforest.armor.yml
Executable file
161
extras/mods/1.6.x/twilightforest.armor.yml
Executable file
@@ -0,0 +1,161 @@
|
|||||||
|
# Config wrote by Dragyn, updated by M1cr0man
|
||||||
|
# Up to date as of Twilight Forest 1.20.5
|
||||||
|
Boots:
|
||||||
|
# Ironwood
|
||||||
|
X27978:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27974
|
||||||
|
Repair_Material_Pretty_Name: "Ironwood Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 4
|
||||||
|
Durability: 260
|
||||||
|
# Fiery
|
||||||
|
X27995:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27991
|
||||||
|
Repair_Material_Pretty_Name: "Fiery Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 4
|
||||||
|
Durability: 325
|
||||||
|
# Stealeaf
|
||||||
|
X28002:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27998
|
||||||
|
Repair_Material_Pretty_Name: "Steeleaf"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 4
|
||||||
|
Durability: 260
|
||||||
|
# Knightmetal
|
||||||
|
X28037:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X28032
|
||||||
|
Repair_Material_Pretty_Name: "Knightmetal Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 4
|
||||||
|
Durability: 260
|
||||||
|
|
||||||
|
Chestplates:
|
||||||
|
# Ironwood
|
||||||
|
X27976:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27974
|
||||||
|
Repair_Material_Pretty_Name: "Ironwood Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 8
|
||||||
|
Durability: 320
|
||||||
|
# Naga Scale
|
||||||
|
X27958:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27957
|
||||||
|
Repair_Material_Pretty_Name: "Naga Scale"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 8
|
||||||
|
Durability: 336
|
||||||
|
# Fiery
|
||||||
|
X27993:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27991
|
||||||
|
Repair_Material_Pretty_Name: "Fiery Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 8
|
||||||
|
Durability: 400
|
||||||
|
# Stealeaf
|
||||||
|
X28000:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27998
|
||||||
|
Repair_Material_Pretty_Name: "Steeleaf"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 8
|
||||||
|
Durability: 320
|
||||||
|
# Knightmetal
|
||||||
|
X28035:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X28032
|
||||||
|
Repair_Material_Pretty_Name: "Knightmetal Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 8
|
||||||
|
Durability: 320
|
||||||
|
# Phantom
|
||||||
|
X28035:
|
||||||
|
Repairable: false
|
||||||
|
Durability: 480
|
||||||
|
|
||||||
|
Helmets:
|
||||||
|
# Ironwood
|
||||||
|
X27975:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27974
|
||||||
|
Repair_Material_Pretty_Name: "Ironwood Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 5
|
||||||
|
Durability: 220
|
||||||
|
# Fiery
|
||||||
|
X27992:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27991
|
||||||
|
Repair_Material_Pretty_Name: "Fiery Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 5
|
||||||
|
Durability: 275
|
||||||
|
# Stealeaf
|
||||||
|
X27999:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27998
|
||||||
|
Repair_Material_Pretty_Name: "Steeleaf"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 5
|
||||||
|
Durability: 220
|
||||||
|
# Knightmetal
|
||||||
|
X28034:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X28032
|
||||||
|
Repair_Material_Pretty_Name: "Knightmetal Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 5
|
||||||
|
Durability: 220
|
||||||
|
# Phantom
|
||||||
|
X28034:
|
||||||
|
Repairable: false
|
||||||
|
Durability: 330
|
||||||
|
|
||||||
|
Leggings:
|
||||||
|
# Ironwood
|
||||||
|
X27977:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27974
|
||||||
|
Repair_Material_Pretty_Name: "Ironwood Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 7
|
||||||
|
Durability: 300
|
||||||
|
# Naga Scale
|
||||||
|
X27959:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27957
|
||||||
|
Repair_Material_Pretty_Name: "Naga Scale"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 7
|
||||||
|
Durability: 315
|
||||||
|
# Fiery
|
||||||
|
X27994:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27991
|
||||||
|
Repair_Material_Pretty_Name: "Fiery Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 7
|
||||||
|
Durability: 375
|
||||||
|
# Stealeaf
|
||||||
|
X28001:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27998
|
||||||
|
Repair_Material_Pretty_Name: "Steeleaf"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 7
|
||||||
|
Durability: 300
|
||||||
|
# Knightmetal
|
||||||
|
X28036:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X28032
|
||||||
|
Repair_Material_Pretty_Name: "Knightmetal Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 7
|
||||||
|
Durability: 300
|
||||||
117
extras/mods/1.6.x/twilightforest.blocks.yml
Executable file
117
extras/mods/1.6.x/twilightforest.blocks.yml
Executable file
@@ -0,0 +1,117 @@
|
|||||||
|
# Config created by Dragyn
|
||||||
|
# Created For twilightforest-1.20.3
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Settings for Custom Herbalism Blocks
|
||||||
|
###
|
||||||
|
Herbalism:
|
||||||
|
# Mushgloom
|
||||||
|
X2169|9:
|
||||||
|
XP_Gain: 150
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
# Torchberry Plant
|
||||||
|
X2169|13:
|
||||||
|
XP_Gain: 20
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
# Mayapple
|
||||||
|
X2169|4:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
# Fiddlehead
|
||||||
|
X2169|8:
|
||||||
|
XP_Gain: 35
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Custom Mining Blocks
|
||||||
|
###
|
||||||
|
Mining:
|
||||||
|
# Mazestone
|
||||||
|
X2165|0:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2165|1:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2165|2:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2165|3:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2165|4:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2165|5:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2165|6:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2165|7:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Custom Woodcutting Blocks
|
||||||
|
###
|
||||||
|
Woodcutting:
|
||||||
|
# Twilight Oak
|
||||||
|
X2163|0:
|
||||||
|
XP_Gain: 70
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Canopy
|
||||||
|
X2163|1:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Mangrove
|
||||||
|
X2163|2:
|
||||||
|
XP_Gain: 90
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Darkwood
|
||||||
|
X2163|3:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Roots
|
||||||
|
X2170|0:
|
||||||
|
XP_Gain: 10
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: false
|
||||||
|
X2170|1:
|
||||||
|
XP_Gain: 10
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: false
|
||||||
|
# Timewood
|
||||||
|
X2176|0:
|
||||||
|
XP_Gain: 1000
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Transwood
|
||||||
|
X2176|1:
|
||||||
|
XP_Gain: 1000
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Minewood
|
||||||
|
X2176|2:
|
||||||
|
XP_Gain: 1000
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Sortingwood
|
||||||
|
X2176|3:
|
||||||
|
XP_Gain: 1000
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
|
||||||
181
extras/mods/1.6.x/twilightforest.tools.yml
Executable file
181
extras/mods/1.6.x/twilightforest.tools.yml
Executable file
@@ -0,0 +1,181 @@
|
|||||||
|
# Config wrote by Dragyn, updated by M1cr0man
|
||||||
|
# Up to date as of Twilight Forest 1.20.5
|
||||||
|
Axes:
|
||||||
|
# Ironwood
|
||||||
|
X27982:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27974
|
||||||
|
Repair_Material_Pretty_Name: "Ironwood Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 512
|
||||||
|
# Steeleaf
|
||||||
|
X28006:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27998
|
||||||
|
Repair_Material_Pretty_Name: "Steeleaf"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 131
|
||||||
|
# Knightmetal
|
||||||
|
X28040:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X28032
|
||||||
|
Repair_Material_Pretty_Name: "Knightmetal Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 512
|
||||||
|
# Minotaur
|
||||||
|
X28008:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: false
|
||||||
|
Durability: 1561
|
||||||
|
|
||||||
|
Hoes:
|
||||||
|
# Ironwood
|
||||||
|
X27983:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27974
|
||||||
|
Repair_Material_Pretty_Name: "Ironwood Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 512
|
||||||
|
# Steeleaf
|
||||||
|
X28007:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27998
|
||||||
|
Repair_Material_Pretty_Name: "Steeleaf"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 131
|
||||||
|
|
||||||
|
Pickaxes:
|
||||||
|
# Ironwood
|
||||||
|
X27981:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27974
|
||||||
|
Repair_Material_Pretty_Name: "Ironwood Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 512
|
||||||
|
# Fiery
|
||||||
|
X27997:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27991
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 1024
|
||||||
|
# Steeleaf
|
||||||
|
X28005:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27998
|
||||||
|
Repair_Material_Pretty_Name: "Steeleaf"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 131
|
||||||
|
# Knightmetal
|
||||||
|
X28039:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X28032
|
||||||
|
Repair_Material_Pretty_Name: "Knightmetal Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 512
|
||||||
|
|
||||||
|
Shovels:
|
||||||
|
# Ironwood
|
||||||
|
X27980:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27974
|
||||||
|
Repair_Material_Pretty_Name: "Ironwood Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 512
|
||||||
|
# Steeleaf
|
||||||
|
X28004:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27998
|
||||||
|
Repair_Material_Pretty_Name: "Steeleaf"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 131
|
||||||
|
|
||||||
|
Swords:
|
||||||
|
# Ironwood
|
||||||
|
X27979:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27974
|
||||||
|
Repair_Material_Pretty_Name: "Ironwood Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 512
|
||||||
|
# Fiery
|
||||||
|
X27996:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27991
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 1024
|
||||||
|
# Steeleaf
|
||||||
|
X28003:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X27998
|
||||||
|
Repair_Material_Pretty_Name: "Steeleaf"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 131
|
||||||
|
# Knightmetal
|
||||||
|
X28038:
|
||||||
|
XP_Modifier: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: X28032
|
||||||
|
Repair_Material_Pretty_Name: "Knightmetal Ingot"
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 512
|
||||||
171
extras/mods/1.6.x/underground_biomes.blocks.yml
Executable file
171
extras/mods/1.6.x/underground_biomes.blocks.yml
Executable file
@@ -0,0 +1,171 @@
|
|||||||
|
# Config created by Dragyn
|
||||||
|
# Created For UndergroundBiomes 1.6.x - 0.4.2c
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Settings for Custom Mining Blocks
|
||||||
|
###
|
||||||
|
Mining:
|
||||||
|
X2000|0:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2000|1:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2000|2:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2000|3:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2000|4:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2000|5:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2000|6:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2000|7:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
#
|
||||||
|
X2001|0:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2001|1:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2001|2:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2001|3:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2001|4:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2001|5:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2001|6:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2001|7:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
#
|
||||||
|
X2009|0:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2009|1:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2009|2:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2009|3:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2009|4:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2009|5:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2009|6:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2009|7:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
#
|
||||||
|
X2010|0:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2010|1:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2010|2:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2010|3:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2010|4:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2010|5:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2010|6:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2010|7:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
#
|
||||||
|
X2011|0:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2011|1:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2011|2:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2011|3:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2011|4:
|
||||||
|
XP_Gain: 50
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2011|5:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2011|6:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
X2011|7:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
132
extras/mods/1.7.x/twilightforest.armor.yml
Normal file
132
extras/mods/1.7.x/twilightforest.armor.yml
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
# Config created by joulesbeef
|
||||||
|
# Created For twilightforest-2.2.3
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Settings for Boots
|
||||||
|
###
|
||||||
|
Boots:
|
||||||
|
# Ironwood
|
||||||
|
TWILIGHTFOREST_ITEM_IRONWOODBOOTS:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Fiery
|
||||||
|
TWILIGHTFOREST_ITEM_FIERYBOOTS:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Stealeaf
|
||||||
|
TWILIGHTFOREST_ITEM_STEELEAFBOOTS:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Knightmetal
|
||||||
|
TWILIGHTFOREST_ITEM_KNIGHTLYBOOTS:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Chestplates
|
||||||
|
###
|
||||||
|
Chestplates:
|
||||||
|
# Ironwood
|
||||||
|
TWILIGHTFOREST_ITEM_IRONWOODPLATE:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Fiery
|
||||||
|
TWILIGHTFOREST_ITEM_FIERYPLATE:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Stealeaf
|
||||||
|
TWILIGHTFOREST_ITEM_STEELEAFPLATE:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Knightmetal
|
||||||
|
TWILIGHTFOREST_ITEM_KNIGHTLYPLATE:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Helmets
|
||||||
|
###
|
||||||
|
Helmets:
|
||||||
|
# Ironwood
|
||||||
|
TWILIGHTFOREST_ITEM_IRONWOODHELM:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Fiery
|
||||||
|
TWILIGHTFOREST_ITEM_FIERYHELM:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Stealeaf
|
||||||
|
TWILIGHTFOREST_ITEM_STEELEAFHELM:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Knightmetal
|
||||||
|
TWILIGHTFOREST_ITEM_KNIGHTLYHELM:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 50
|
||||||
|
# Settings for Leggings
|
||||||
|
###
|
||||||
|
Leggings:
|
||||||
|
# Ironwood
|
||||||
|
TWILIGHTFOREST_ITEM_IRONWOODLEGS:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Fiery
|
||||||
|
TWILIGHTFOREST_ITEM_FIERYLEGS:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Stealeaf
|
||||||
|
TWILIGHTFOREST_ITEM_STEELEAFLEGS:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Knightmetal
|
||||||
|
TWILIGHTFOREST_ITEM_KNIGHTLYLEGS:
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
116
extras/mods/1.7.x/twilightforest.blocks.yml
Normal file
116
extras/mods/1.7.x/twilightforest.blocks.yml
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
# Config created by joulesbeef
|
||||||
|
# Created For twilightforest-2.2.3
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Settings for Custom Herbalism Blocks
|
||||||
|
###
|
||||||
|
Herbalism:
|
||||||
|
# Mushgloom
|
||||||
|
TWILIGHTFOREST_TILE_TFLOG|9:
|
||||||
|
XP_Gain: 150
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
# Torchberry Plant
|
||||||
|
TWILIGHTFOREST_TILE_TFLOG|13:
|
||||||
|
XP_Gain: 20
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
# Mayapple
|
||||||
|
TWILIGHTFOREST_TILE_TFLOG|4:
|
||||||
|
XP_Gain: 30
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
# Fiddlehead
|
||||||
|
TWILIGHTFOREST_TILE_TFLOG|8:
|
||||||
|
XP_Gain: 35
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Custom Mining Blocks
|
||||||
|
###
|
||||||
|
Mining:
|
||||||
|
# Mazestone
|
||||||
|
TWILIGHTFOREST_TILE_TFMAZESTONE|0:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
TWILIGHTFOREST_TILE_TFMAZESTONE|1:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
TWILIGHTFOREST_TILE_TFMAZESTONE|2:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
TWILIGHTFOREST_TILE_TFMAZESTONE|3:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
TWILIGHTFOREST_TILE_TFMAZESTONE|4:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
TWILIGHTFOREST_TILE_TFMAZESTONE|5:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
TWILIGHTFOREST_TILE_TFMAZESTONE|6:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
TWILIGHTFOREST_TILE_TFMAZESTONE|7:
|
||||||
|
XP_Gain: 250
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Ore: false
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Custom Woodcutting Blocks
|
||||||
|
###
|
||||||
|
Woodcutting:
|
||||||
|
# Twilight Oak
|
||||||
|
TWILIGHTFOREST_TILE_TFLOG|0:
|
||||||
|
XP_Gain: 70
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Canopy
|
||||||
|
TWILIGHTFOREST_TILE_TFLOG|1:
|
||||||
|
XP_Gain: 80
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Mangrove
|
||||||
|
TWILIGHTFOREST_TILE_TFLOG|2:
|
||||||
|
XP_Gain: 90
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Darkwood
|
||||||
|
TWILIGHTFOREST_TILE_TFLOG|3:
|
||||||
|
XP_Gain: 100
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Roots
|
||||||
|
TWILIGHTFOREST_TILE_TFROOTS|0:
|
||||||
|
XP_Gain: 10
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: false
|
||||||
|
TWILIGHTFOREST_TILE_TFROOTS|1:
|
||||||
|
XP_Gain: 10
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: false
|
||||||
|
# Timewood
|
||||||
|
TWILIGHTFOREST_TILE_TFMAGICLOG|0:
|
||||||
|
XP_Gain: 1000
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Transwood
|
||||||
|
TWILIGHTFOREST_TILE_TFMAGICLOG|1:
|
||||||
|
XP_Gain: 1000
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Minewood
|
||||||
|
TWILIGHTFOREST_TILE_TFMAGICLOG|2:
|
||||||
|
XP_Gain: 1000
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
|
# Sortingwood
|
||||||
|
TWILIGHTFOREST_TILE_TFMAGICLOG|3:
|
||||||
|
XP_Gain: 1000
|
||||||
|
Double_Drops_Enabled: true
|
||||||
|
Is_Log: true
|
||||||
152
extras/mods/1.7.x/twilightforest.entities.yml
Normal file
152
extras/mods/1.7.x/twilightforest.entities.yml
Normal file
@@ -0,0 +1,152 @@
|
|||||||
|
# Config created by joulesbeef
|
||||||
|
# Created For twilightforest-2.2.3
|
||||||
|
#
|
||||||
|
# Settings for Custom Mobs
|
||||||
|
MoCreatures-Ogre:
|
||||||
|
Class: Monster
|
||||||
|
XP_Multiplier: 1.0
|
||||||
|
Tameable: false
|
||||||
|
Taming_XP: 0
|
||||||
|
CanBeSummoned: false
|
||||||
|
COTW_Material: ''
|
||||||
|
COTW_Material_Data: 0
|
||||||
|
COTW_Material_Amount: 0
|
||||||
|
TwilightForest-TwilightLich:
|
||||||
|
Class: Monster
|
||||||
|
XP_Multiplier: 1.0
|
||||||
|
Tameable: false
|
||||||
|
Taming_XP: 0
|
||||||
|
CanBeSummoned: false
|
||||||
|
COTW_Material: ''
|
||||||
|
COTW_Material_Data: 0
|
||||||
|
COTW_Material_Amount: 0
|
||||||
|
TwilightForest-HelmetCrab:
|
||||||
|
Class: Monster
|
||||||
|
XP_Multiplier: 1.0
|
||||||
|
Tameable: false
|
||||||
|
Taming_XP: 0
|
||||||
|
CanBeSummoned: false
|
||||||
|
COTW_Material: ''
|
||||||
|
COTW_Material_Data: 0
|
||||||
|
COTW_Material_Amount: 0
|
||||||
|
TwilightForest-SlimeBeetle:
|
||||||
|
Class: Monster
|
||||||
|
XP_Multiplier: 1.0
|
||||||
|
Tameable: false
|
||||||
|
Taming_XP: 0
|
||||||
|
CanBeSummoned: false
|
||||||
|
COTW_Material: ''
|
||||||
|
COTW_Material_Data: 0
|
||||||
|
COTW_Material_Amount: 0
|
||||||
|
TwilightForest-TwilightWraith:
|
||||||
|
Class: Monster
|
||||||
|
XP_Multiplier: 1.0
|
||||||
|
Tameable: false
|
||||||
|
Taming_XP: 0
|
||||||
|
CanBeSummoned: false
|
||||||
|
COTW_Material: ''
|
||||||
|
COTW_Material_Data: 0
|
||||||
|
COTW_Material_Amount: 0
|
||||||
|
TwilightForest-Naga:
|
||||||
|
Class: Monster
|
||||||
|
XP_Multiplier: 1.0
|
||||||
|
Tameable: false
|
||||||
|
Taming_XP: 0
|
||||||
|
CanBeSummoned: false
|
||||||
|
COTW_Material: ''
|
||||||
|
COTW_Material_Data: 0
|
||||||
|
COTW_Material_Amount: 0
|
||||||
|
MoCreatures-Shark:
|
||||||
|
Class: Monster
|
||||||
|
XP_Multiplier: 1.0
|
||||||
|
Tameable: false
|
||||||
|
Taming_XP: 0
|
||||||
|
CanBeSummoned: false
|
||||||
|
COTW_Material: ''
|
||||||
|
COTW_Material_Data: 0
|
||||||
|
COTW_Material_Amount: 0
|
||||||
|
TwilightForest-TowerTermite:
|
||||||
|
Class: Monster
|
||||||
|
XP_Multiplier: 1.0
|
||||||
|
Tameable: false
|
||||||
|
Taming_XP: 0
|
||||||
|
CanBeSummoned: false
|
||||||
|
COTW_Material: ''
|
||||||
|
COTW_Material_Data: 0
|
||||||
|
COTW_Material_Amount: 0
|
||||||
|
MoCreatures-SmallFish:
|
||||||
|
Class: Monster
|
||||||
|
XP_Multiplier: 1.0
|
||||||
|
Tameable: false
|
||||||
|
Taming_XP: 0
|
||||||
|
CanBeSummoned: false
|
||||||
|
COTW_Material: ''
|
||||||
|
COTW_Material_Data: 0
|
||||||
|
COTW_Material_Amount: 0
|
||||||
|
TwilightForest-Redcap:
|
||||||
|
Class: Monster
|
||||||
|
XP_Multiplier: 1.0
|
||||||
|
Tameable: false
|
||||||
|
Taming_XP: 0
|
||||||
|
CanBeSummoned: false
|
||||||
|
COTW_Material: ''
|
||||||
|
COTW_Material_Data: 0
|
||||||
|
COTW_Material_Amount: 0
|
||||||
|
TwilightForest-YetiBoss:
|
||||||
|
Class: Monster
|
||||||
|
XP_Multiplier: 1.0
|
||||||
|
Tameable: false
|
||||||
|
Taming_XP: 0
|
||||||
|
CanBeSummoned: false
|
||||||
|
COTW_Material: ''
|
||||||
|
COTW_Material_Data: 0
|
||||||
|
COTW_Material_Amount: 0
|
||||||
|
MoCreatures-HellRat:
|
||||||
|
Class: Monster
|
||||||
|
XP_Multiplier: 1.0
|
||||||
|
Tameable: false
|
||||||
|
Taming_XP: 0
|
||||||
|
CanBeSummoned: false
|
||||||
|
COTW_Material: ''
|
||||||
|
COTW_Material_Data: 0
|
||||||
|
COTW_Material_Amount: 0
|
||||||
|
TwilightForest-Hydra:
|
||||||
|
XP_Multiplier: 1.0
|
||||||
|
Tameable: false
|
||||||
|
Taming_XP: 0
|
||||||
|
CanBeSummoned: false
|
||||||
|
COTW_Material: ''
|
||||||
|
COTW_Material_Data: 0
|
||||||
|
COTW_Material_Amount: 0
|
||||||
|
TwilightForest-Firefly:
|
||||||
|
XP_Multiplier: 1.0
|
||||||
|
Tameable: false
|
||||||
|
Taming_XP: 0
|
||||||
|
CanBeSummoned: false
|
||||||
|
COTW_Material: ''
|
||||||
|
COTW_Material_Data: 0
|
||||||
|
COTW_Material_Amount: 0
|
||||||
|
TwilightForest-KnightPhantom:
|
||||||
|
XP_Multiplier: 1.0
|
||||||
|
Tameable: false
|
||||||
|
Taming_XP: 0
|
||||||
|
CanBeSummoned: false
|
||||||
|
COTW_Material: ''
|
||||||
|
COTW_Material_Data: 0
|
||||||
|
COTW_Material_Amount: 0
|
||||||
|
TwilightForest-TowerGolem:
|
||||||
|
XP_Multiplier: 1.0
|
||||||
|
Tameable: false
|
||||||
|
Taming_XP: 0
|
||||||
|
CanBeSummoned: false
|
||||||
|
COTW_Material: ''
|
||||||
|
COTW_Material_Data: 0
|
||||||
|
COTW_Material_Amount: 0
|
||||||
|
MoCreatures-FishBowl:
|
||||||
|
XP_Multiplier: 1.0
|
||||||
|
Tameable: false
|
||||||
|
Taming_XP: 0
|
||||||
|
CanBeSummoned: false
|
||||||
|
COTW_Material: ''
|
||||||
|
COTW_Material_Data: 0
|
||||||
|
COTW_Material_Amount: 0
|
||||||
184
extras/mods/1.7.x/twilightforest.tools.yml
Normal file
184
extras/mods/1.7.x/twilightforest.tools.yml
Normal file
@@ -0,0 +1,184 @@
|
|||||||
|
# Config created by joulesbeef
|
||||||
|
# Created For twilightforest-2.2.3
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Settings for Axes
|
||||||
|
###
|
||||||
|
Axes:
|
||||||
|
# Ironwood
|
||||||
|
TWILIGHTFOREST_ITEM_IRONWOODAXE:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Steeleaf
|
||||||
|
TWILIGHTFOREST_ITEM_STEELEAFAXE:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Knightmetal
|
||||||
|
TWILIGHTFOREST_ITEM_KNIGHTLYAXE:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Minotaur
|
||||||
|
TWILIGHTFOREST_ITEM_MINOTAURAXE:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: Diamond
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
#
|
||||||
|
# Settings for Hoes
|
||||||
|
###
|
||||||
|
Hoes:
|
||||||
|
# Ironwood
|
||||||
|
TWILIGHTFOREST_ITEM_IRONWOODHOE:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Steeleaf
|
||||||
|
TWILIGHTFOREST_ITEM_STEELEAFHOE:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Pickaxes
|
||||||
|
###
|
||||||
|
Pickaxes:
|
||||||
|
# Ironwood
|
||||||
|
TWILIGHTFOREST_ITEM_IRONWOODPICK:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Fiery
|
||||||
|
TWILIGHTFOREST_ITEM_FIERYPICK:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Steeleaf
|
||||||
|
TWILIGHTFOREST_ITEM_STEELEAFPICK:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Knightmetal
|
||||||
|
TWILIGHTFOREST_ITEM_KNIGHTLYPICK:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
#
|
||||||
|
# Settings for Shovels
|
||||||
|
###
|
||||||
|
Shovels:
|
||||||
|
# Ironwood
|
||||||
|
TWILIGHTFOREST_ITEM_IRONWOODSHOVEL:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Steeleaf
|
||||||
|
TWILIGHTFOREST_ITEM_STEELEAFSHOVEL:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
#
|
||||||
|
# Settings for Swords
|
||||||
|
###
|
||||||
|
Swords:
|
||||||
|
# Ironwood
|
||||||
|
TWILIGHTFOREST_ITEM_IRONWOODSWORD:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Fiery
|
||||||
|
TWILIGHTFOREST_ITEM_FIERYSWORD:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Steeleaf
|
||||||
|
TWILIGHTFOREST_ITEM_STEELEAFSWORD:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
|
# Knightmetal
|
||||||
|
TWILIGHTFOREST_ITEM_KNIGHTLYSWORD:
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Ability_Enabled: true
|
||||||
|
Tier: 1
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Repair_Material_Quantity: 2
|
||||||
|
Durability: 500
|
||||||
69
pom.xml
69
pom.xml
@@ -2,15 +2,16 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
||||||
<artifactId>mcMMO</artifactId>
|
<artifactId>mcMMO</artifactId>
|
||||||
<version>1.4.08-dev1</version>
|
<version>2.1.0-SNAPSHOT</version>
|
||||||
<name>mcMMO</name>
|
<name>mcMMO</name>
|
||||||
<url>https://github.com/mcMMO-Dev/mcMMO</url>
|
<url>https://github.com/mcMMO-Dev/mcMMO</url>
|
||||||
<issueManagement>
|
<issueManagement>
|
||||||
<url>https://github.com/mcMMO-Dev/mcMMO/issues</url>
|
<url>https://github.com/mcMMO-Dev/mcMMO/issues</url>
|
||||||
<system>GitHub</system>
|
<system>GitHub</system>
|
||||||
</issueManagement>
|
</issueManagement>
|
||||||
|
<packaging>jar</packaging>
|
||||||
<build>
|
<build>
|
||||||
<finalName>mcMMO</finalName>
|
<finalName>${project.artifactId}</finalName>
|
||||||
<sourceDirectory>${basedir}/src/main/java</sourceDirectory>
|
<sourceDirectory>${basedir}/src/main/java</sourceDirectory>
|
||||||
<resources>
|
<resources>
|
||||||
<resource>
|
<resource>
|
||||||
@@ -38,6 +39,14 @@
|
|||||||
<include>*.yml</include>
|
<include>*.yml</include>
|
||||||
</includes>
|
</includes>
|
||||||
</resource>
|
</resource>
|
||||||
|
<resource>
|
||||||
|
<targetPath>.</targetPath>
|
||||||
|
<filtering>true</filtering>
|
||||||
|
<directory>${basedir}</directory>
|
||||||
|
<includes>
|
||||||
|
<include>LICENSE</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
</resources>
|
</resources>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
@@ -45,8 +54,8 @@
|
|||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<version>2.3.2</version>
|
<version>2.3.2</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>1.6</source>
|
<source>1.8</source>
|
||||||
<target>1.6</target>
|
<target>1.8</target>
|
||||||
<excludes>
|
<excludes>
|
||||||
</excludes>
|
</excludes>
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -71,17 +80,27 @@
|
|||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-shade-plugin</artifactId>
|
<artifactId>maven-shade-plugin</artifactId>
|
||||||
<version>1.5</version>
|
<version>3.1.1</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<artifactSet>
|
<artifactSet>
|
||||||
<includes>
|
<includes>
|
||||||
<include>com.turt2live.metrics:MetricsExtension</include>
|
<include>commons-logging:commons-logging</include>
|
||||||
|
<include>org.apache.tomcat:tomcat-jdbc</include>
|
||||||
|
<include>org.apache.tomcat:tomcat-juli</include>
|
||||||
</includes>
|
</includes>
|
||||||
</artifactSet>
|
</artifactSet>
|
||||||
<relocations>
|
<relocations>
|
||||||
<relocation>
|
<relocation>
|
||||||
<pattern>com.turt2live.metrics</pattern>
|
<pattern>org.apache.commons.logging</pattern>
|
||||||
<shadedPattern>com.gmail.nossr50.metrics.mcstats</shadedPattern>
|
<shadedPattern>com.gmail.nossr50.commons.logging</shadedPattern>
|
||||||
|
</relocation>
|
||||||
|
<relocation>
|
||||||
|
<pattern>org.apache.juli</pattern>
|
||||||
|
<shadedPattern>com.gmail.nossr50.database.tomcat.juli</shadedPattern>
|
||||||
|
</relocation>
|
||||||
|
<relocation>
|
||||||
|
<pattern>org.apache.tomcat</pattern>
|
||||||
|
<shadedPattern>com.gmail.nossr50.database.tomcat</shadedPattern>
|
||||||
</relocation>
|
</relocation>
|
||||||
</relocations>
|
</relocations>
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -105,21 +124,16 @@
|
|||||||
</build>
|
</build>
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>bukkit-repo</id>
|
<id>spigot-repo</id>
|
||||||
<url>http://repo.bukkit.org/content/groups/public/</url>
|
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||||
</repository>
|
|
||||||
<repository>
|
|
||||||
<id>Plugin MetricsExtension</id>
|
|
||||||
<url>http://repo.turt2live.com</url>
|
|
||||||
</repository>
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.bukkit</groupId>
|
<groupId>org.spigotmc</groupId>
|
||||||
<artifactId>bukkit</artifactId>
|
<artifactId>spigot-api</artifactId>
|
||||||
<version>LATEST</version>
|
<version>1.13.2-R0.1-SNAPSHOT</version>
|
||||||
<type>jar</type>
|
<scope>provided</scope>
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
@@ -128,22 +142,13 @@
|
|||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.turt2live.metrics</groupId>
|
<groupId>org.apache.tomcat</groupId>
|
||||||
<artifactId>MetricsExtension</artifactId>
|
<artifactId>tomcat-jdbc</artifactId>
|
||||||
<version>0.0.5-SNAPSHOT</version>
|
<version>7.0.52</version>
|
||||||
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<distributionManagement>
|
|
||||||
<repository>
|
|
||||||
<id>mcmmo-repo</id>
|
|
||||||
<url>file:///var/lib/jenkins/repo</url>
|
|
||||||
</repository>
|
|
||||||
</distributionManagement>
|
|
||||||
<properties>
|
<properties>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
</properties>
|
</properties>
|
||||||
<ciManagement>
|
|
||||||
<system>Jenkins</system>
|
|
||||||
<url>http://ci.ecocitycraft.com/job/mcMMO</url>
|
|
||||||
</ciManagement>
|
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
3
src/main/java/META-INF/MANIFEST.MF
Normal file
3
src/main/java/META-INF/MANIFEST.MF
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
Manifest-Version: 1.0
|
||||||
|
Main-Class: com.gmail.nossr50.mcMMO
|
||||||
|
|
||||||
@@ -1,46 +1,48 @@
|
|||||||
package com.gmail.nossr50.api;
|
package com.gmail.nossr50.api;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.skills.SuperAbility;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
import com.gmail.nossr50.runnables.skills.BleedTimerTask;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
public final class AbilityAPI {
|
public final class AbilityAPI {
|
||||||
private AbilityAPI() {}
|
private AbilityAPI() {}
|
||||||
|
|
||||||
public static boolean berserkEnabled(Player player) {
|
public static boolean berserkEnabled(Player player) {
|
||||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.BERSERK);
|
return UserManager.getPlayer(player).getAbilityMode(SuperAbility.BERSERK);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean gigaDrillBreakerEnabled(Player player) {
|
public static boolean gigaDrillBreakerEnabled(Player player) {
|
||||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.GIGA_DRILL_BREAKER);
|
return UserManager.getPlayer(player).getAbilityMode(SuperAbility.GIGA_DRILL_BREAKER);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean greenTerraEnabled(Player player) {
|
public static boolean greenTerraEnabled(Player player) {
|
||||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.GREEN_TERRA);
|
return UserManager.getPlayer(player).getAbilityMode(SuperAbility.GREEN_TERRA);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean serratedStrikesEnabled(Player player) {
|
public static boolean serratedStrikesEnabled(Player player) {
|
||||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.SERRATED_STRIKES);
|
return UserManager.getPlayer(player).getAbilityMode(SuperAbility.SERRATED_STRIKES);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean skullSplitterEnabled(Player player) {
|
public static boolean skullSplitterEnabled(Player player) {
|
||||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.SKULL_SPLITTER);
|
return UserManager.getPlayer(player).getAbilityMode(SuperAbility.SKULL_SPLITTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean superBreakerEnabled(Player player) {
|
public static boolean superBreakerEnabled(Player player) {
|
||||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.SUPER_BREAKER);
|
return UserManager.getPlayer(player).getAbilityMode(SuperAbility.SUPER_BREAKER);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean treeFellerEnabled(Player player) {
|
public static boolean treeFellerEnabled(Player player) {
|
||||||
return UserManager.getPlayer(player).getAbilityMode(AbilityType.TREE_FELLER);
|
return UserManager.getPlayer(player).getAbilityMode(SuperAbility.TREE_FELLER);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isAnyAbilityEnabled(Player player) {
|
public static boolean isAnyAbilityEnabled(Player player) {
|
||||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||||
|
|
||||||
for (AbilityType ability : AbilityType.values()) {
|
for (SuperAbility ability : SuperAbility.values()) {
|
||||||
if (mcMMOPlayer.getAbilityMode(ability)) {
|
if (mcMMOPlayer.getAbilityMode(ability)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -50,34 +52,38 @@ public final class AbilityAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void resetCooldowns(Player player) {
|
public static void resetCooldowns(Player player) {
|
||||||
UserManager.getPlayer(player).getProfile().resetCooldowns();
|
UserManager.getPlayer(player).resetCooldowns();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setBerserkCooldown(Player player, long cooldown) {
|
public static void setBerserkCooldown(Player player, long cooldown) {
|
||||||
UserManager.getPlayer(player).getProfile().setSkillDATS(AbilityType.BERSERK, cooldown);
|
UserManager.getPlayer(player).setAbilityDATS(SuperAbility.BERSERK, cooldown);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setGigaDrillBreakerCooldown(Player player, long cooldown) {
|
public static void setGigaDrillBreakerCooldown(Player player, long cooldown) {
|
||||||
UserManager.getPlayer(player).getProfile().setSkillDATS(AbilityType.GIGA_DRILL_BREAKER, cooldown);
|
UserManager.getPlayer(player).setAbilityDATS(SuperAbility.GIGA_DRILL_BREAKER, cooldown);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setGreenTerraCooldown(Player player, long cooldown) {
|
public static void setGreenTerraCooldown(Player player, long cooldown) {
|
||||||
UserManager.getPlayer(player).getProfile().setSkillDATS(AbilityType.GREEN_TERRA, cooldown);
|
UserManager.getPlayer(player).setAbilityDATS(SuperAbility.GREEN_TERRA, cooldown);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setSerratedStrikesCooldown(Player player, long cooldown) {
|
public static void setSerratedStrikesCooldown(Player player, long cooldown) {
|
||||||
UserManager.getPlayer(player).getProfile().setSkillDATS(AbilityType.SERRATED_STRIKES, cooldown);
|
UserManager.getPlayer(player).setAbilityDATS(SuperAbility.SERRATED_STRIKES, cooldown);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setSkullSplitterCooldown(Player player, long cooldown) {
|
public static void setSkullSplitterCooldown(Player player, long cooldown) {
|
||||||
UserManager.getPlayer(player).getProfile().setSkillDATS(AbilityType.SKULL_SPLITTER, cooldown);
|
UserManager.getPlayer(player).setAbilityDATS(SuperAbility.SKULL_SPLITTER, cooldown);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setSuperBreakerCooldown(Player player, long cooldown) {
|
public static void setSuperBreakerCooldown(Player player, long cooldown) {
|
||||||
UserManager.getPlayer(player).getProfile().setSkillDATS(AbilityType.SUPER_BREAKER, cooldown);
|
UserManager.getPlayer(player).setAbilityDATS(SuperAbility.SUPER_BREAKER, cooldown);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setTreeFellerCooldown(Player player, long cooldown) {
|
public static void setTreeFellerCooldown(Player player, long cooldown) {
|
||||||
UserManager.getPlayer(player).getProfile().setSkillDATS(AbilityType.TREE_FELLER, cooldown);
|
UserManager.getPlayer(player).setAbilityDATS(SuperAbility.TREE_FELLER, cooldown);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isBleeding(LivingEntity entity) {
|
||||||
|
return BleedTimerTask.isBleeding(entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ public final class ChatAPI {
|
|||||||
* @return true if the player is using party chat, false otherwise
|
* @return true if the player is using party chat, false otherwise
|
||||||
*/
|
*/
|
||||||
public static boolean isUsingPartyChat(Player player) {
|
public static boolean isUsingPartyChat(Player player) {
|
||||||
return UserManager.getPlayer(player).getPartyChatMode();
|
return UserManager.getPlayer(player).isChatEnabled(ChatMode.PARTY);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -86,7 +86,7 @@ public final class ChatAPI {
|
|||||||
* @return true if the player is using party chat, false otherwise
|
* @return true if the player is using party chat, false otherwise
|
||||||
*/
|
*/
|
||||||
public static boolean isUsingPartyChat(String playerName) {
|
public static boolean isUsingPartyChat(String playerName) {
|
||||||
return UserManager.getPlayer(playerName).getPartyChatMode();
|
return UserManager.getPlayer(playerName).isChatEnabled(ChatMode.PARTY);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -96,7 +96,7 @@ public final class ChatAPI {
|
|||||||
* @return true if the player is using admin chat, false otherwise
|
* @return true if the player is using admin chat, false otherwise
|
||||||
*/
|
*/
|
||||||
public static boolean isUsingAdminChat(Player player) {
|
public static boolean isUsingAdminChat(Player player) {
|
||||||
return UserManager.getPlayer(player).getAdminChatMode();
|
return UserManager.getPlayer(player).isChatEnabled(ChatMode.ADMIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -106,7 +106,7 @@ public final class ChatAPI {
|
|||||||
* @return true if the player is using admin chat, false otherwise
|
* @return true if the player is using admin chat, false otherwise
|
||||||
*/
|
*/
|
||||||
public static boolean isUsingAdminChat(String playerName) {
|
public static boolean isUsingAdminChat(String playerName) {
|
||||||
return UserManager.getPlayer(playerName).getAdminChatMode();
|
return UserManager.getPlayer(playerName).isChatEnabled(ChatMode.ADMIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -115,7 +115,7 @@ public final class ChatAPI {
|
|||||||
* @param player The player to toggle party chat on.
|
* @param player The player to toggle party chat on.
|
||||||
*/
|
*/
|
||||||
public static void togglePartyChat(Player player) {
|
public static void togglePartyChat(Player player) {
|
||||||
UserManager.getPlayer(player).togglePartyChat();
|
UserManager.getPlayer(player).toggleChat(ChatMode.PARTY);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -124,7 +124,7 @@ public final class ChatAPI {
|
|||||||
* @param playerName The name of the player to toggle party chat on.
|
* @param playerName The name of the player to toggle party chat on.
|
||||||
*/
|
*/
|
||||||
public static void togglePartyChat(String playerName) {
|
public static void togglePartyChat(String playerName) {
|
||||||
UserManager.getPlayer(playerName).togglePartyChat();
|
UserManager.getPlayer(playerName).toggleChat(ChatMode.PARTY);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -133,7 +133,7 @@ public final class ChatAPI {
|
|||||||
* @param player The player to toggle admin chat on.
|
* @param player The player to toggle admin chat on.
|
||||||
*/
|
*/
|
||||||
public static void toggleAdminChat(Player player) {
|
public static void toggleAdminChat(Player player) {
|
||||||
UserManager.getPlayer(player).toggleAdminChat();
|
UserManager.getPlayer(player).toggleChat(ChatMode.ADMIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -142,7 +142,7 @@ public final class ChatAPI {
|
|||||||
* @param playerName The name of the player to toggle party chat on.
|
* @param playerName The name of the player to toggle party chat on.
|
||||||
*/
|
*/
|
||||||
public static void toggleAdminChat(String playerName) {
|
public static void toggleAdminChat(String playerName) {
|
||||||
UserManager.getPlayer(playerName).toggleAdminChat();
|
UserManager.getPlayer(playerName).toggleChat(ChatMode.ADMIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ChatManager getPartyChatManager(Plugin plugin, String party) {
|
private static ChatManager getPartyChatManager(Plugin plugin, String party) {
|
||||||
|
|||||||
@@ -1,16 +1,23 @@
|
|||||||
package com.gmail.nossr50.api;
|
package com.gmail.nossr50.api;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.skills.PrimarySkill;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.api.exceptions.InvalidFormulaTypeException;
|
||||||
import com.gmail.nossr50.api.exceptions.InvalidPlayerException;
|
import com.gmail.nossr50.api.exceptions.InvalidPlayerException;
|
||||||
import com.gmail.nossr50.api.exceptions.InvalidSkillException;
|
import com.gmail.nossr50.api.exceptions.InvalidSkillException;
|
||||||
|
import com.gmail.nossr50.api.exceptions.InvalidXPGainReasonException;
|
||||||
|
import com.gmail.nossr50.api.exceptions.McMMOPlayerNotFoundException;
|
||||||
import com.gmail.nossr50.config.Config;
|
import com.gmail.nossr50.config.Config;
|
||||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
||||||
|
import com.gmail.nossr50.datatypes.experience.FormulaType;
|
||||||
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
import com.gmail.nossr50.datatypes.skills.XPGainReason;
|
||||||
import com.gmail.nossr50.skills.child.FamilyTree;
|
import com.gmail.nossr50.skills.child.FamilyTree;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
@@ -27,7 +34,7 @@ public final class ExperienceAPI {
|
|||||||
* @return true if this is a valid mcMMO skill
|
* @return true if this is a valid mcMMO skill
|
||||||
*/
|
*/
|
||||||
public static boolean isValidSkillType(String skillType) {
|
public static boolean isValidSkillType(String skillType) {
|
||||||
return SkillType.getSkill(skillType) != null;
|
return PrimarySkill.getSkill(skillType) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -41,11 +48,9 @@ public final class ExperienceAPI {
|
|||||||
* @return true if this is a valid, non-child mcMMO skill
|
* @return true if this is a valid, non-child mcMMO skill
|
||||||
*/
|
*/
|
||||||
public static boolean isNonChildSkill(String skillType) {
|
public static boolean isNonChildSkill(String skillType) {
|
||||||
SkillType skill = SkillType.getSkill(skillType);
|
PrimarySkill skill = PrimarySkill.getSkill(skillType);
|
||||||
|
|
||||||
if (skill == null) return false;
|
return skill != null && !skill.isChildSkill();
|
||||||
|
|
||||||
return !skill.isChildSkill();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
@@ -64,10 +69,59 @@ public final class ExperienceAPI {
|
|||||||
*
|
*
|
||||||
* @throws InvalidSkillException if the given skill is not valid
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static void addRawXP(Player player, String skillType, float XP) {
|
public static void addRawXP(Player player, String skillType, float XP) {
|
||||||
UserManager.getPlayer(player).applyXpGain(getSkillType(skillType), XP);
|
addRawXP(player, skillType, XP, "UNKNOWN");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds raw XP to the player.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param player The player to add XP to
|
||||||
|
* @param skillType The skill to add XP to
|
||||||
|
* @param XP The amount of XP to add
|
||||||
|
* @param xpGainReason The reason to gain XP
|
||||||
|
*
|
||||||
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
|
* @throws InvalidXPGainReasonException if the given xpGainReason is not valid
|
||||||
|
*/
|
||||||
|
public static void addRawXP(Player player, String skillType, float XP, String xpGainReason) {
|
||||||
|
addRawXP(player, skillType, XP, xpGainReason, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds raw XP to the player.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param player The player to add XP to
|
||||||
|
* @param skillType The skill to add XP to
|
||||||
|
* @param XP The amount of XP to add
|
||||||
|
* @param xpGainReason The reason to gain XP
|
||||||
|
* @param isUnshared true if the XP cannot be shared with party members
|
||||||
|
*
|
||||||
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
|
* @throws InvalidXPGainReasonException if the given xpGainReason is not valid
|
||||||
|
*/
|
||||||
|
public static void addRawXP(Player player, String skillType, float XP, String xpGainReason, boolean isUnshared) {
|
||||||
|
if (isUnshared) {
|
||||||
|
getPlayer(player).beginUnsharedXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
getPlayer(player).applyXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds raw XP to an offline player.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @deprecated We're using float for our XP values now
|
||||||
|
* replaced by {@link #addRawXPOffline(String playerName, String skillType, float XP)}
|
||||||
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public static void addRawXPOffline(String playerName, String skillType, int XP) {
|
public static void addRawXPOffline(String playerName, String skillType, int XP) {
|
||||||
addRawXPOffline(playerName, skillType, (float) XP);
|
addRawXPOffline(playerName, skillType, (float) XP);
|
||||||
@@ -78,6 +132,9 @@ public final class ExperienceAPI {
|
|||||||
* </br>
|
* </br>
|
||||||
* This function is designed for API usage.
|
* This function is designed for API usage.
|
||||||
*
|
*
|
||||||
|
* @deprecated We're using uuids to get an offline player
|
||||||
|
* replaced by {@link #addRawXPOffline(UUID uuid, String skillType, float XP)}
|
||||||
|
*
|
||||||
* @param playerName The player to add XP to
|
* @param playerName The player to add XP to
|
||||||
* @param skillType The skill to add XP to
|
* @param skillType The skill to add XP to
|
||||||
* @param XP The amount of XP to add
|
* @param XP The amount of XP to add
|
||||||
@@ -85,10 +142,27 @@ public final class ExperienceAPI {
|
|||||||
* @throws InvalidSkillException if the given skill is not valid
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static void addRawXPOffline(String playerName, String skillType, float XP) {
|
public static void addRawXPOffline(String playerName, String skillType, float XP) {
|
||||||
addOfflineXP(playerName, getSkillType(skillType), (int) Math.floor(XP));
|
addOfflineXP(playerName, getSkillType(skillType), (int) Math.floor(XP));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds raw XP to an offline player.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param uuid The UUID of player to add XP to
|
||||||
|
* @param skillType The skill to add XP to
|
||||||
|
* @param XP The amount of XP to add
|
||||||
|
*
|
||||||
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
|
*/
|
||||||
|
public static void addRawXPOffline(UUID uuid, String skillType, float XP) {
|
||||||
|
addOfflineXP(uuid, getSkillType(skillType), (int) Math.floor(XP));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds XP to the player, calculates for XP Rate only.
|
* Adds XP to the player, calculates for XP Rate only.
|
||||||
* </br>
|
* </br>
|
||||||
@@ -100,8 +174,26 @@ public final class ExperienceAPI {
|
|||||||
*
|
*
|
||||||
* @throws InvalidSkillException if the given skill is not valid
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static void addMultipliedXP(Player player, String skillType, int XP) {
|
public static void addMultipliedXP(Player player, String skillType, int XP) {
|
||||||
UserManager.getPlayer(player).applyXpGain(getSkillType(skillType), (int) (XP * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()));
|
addMultipliedXP(player, skillType, XP, "UNKNOWN");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds XP to the player, calculates for XP Rate only.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param player The player to add XP to
|
||||||
|
* @param skillType The skill to add XP to
|
||||||
|
* @param XP The amount of XP to add
|
||||||
|
* @param xpGainReason The reason to gain XP
|
||||||
|
*
|
||||||
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
|
* @throws InvalidXPGainReasonException if the given xpGainReason is not valid
|
||||||
|
*/
|
||||||
|
public static void addMultipliedXP(Player player, String skillType, int XP, String xpGainReason) {
|
||||||
|
getPlayer(player).applyXpGain(getSkillType(skillType), (int) (XP * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()), getXPGainReason(xpGainReason));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -116,6 +208,7 @@ public final class ExperienceAPI {
|
|||||||
* @throws InvalidSkillException if the given skill is not valid
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static void addMultipliedXPOffline(String playerName, String skillType, int XP) {
|
public static void addMultipliedXPOffline(String playerName, String skillType, int XP) {
|
||||||
addOfflineXP(playerName, getSkillType(skillType), (int) (XP * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()));
|
addOfflineXP(playerName, getSkillType(skillType), (int) (XP * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()));
|
||||||
}
|
}
|
||||||
@@ -131,10 +224,51 @@ public final class ExperienceAPI {
|
|||||||
*
|
*
|
||||||
* @throws InvalidSkillException if the given skill is not valid
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static void addModifiedXP(Player player, String skillType, int XP) {
|
public static void addModifiedXP(Player player, String skillType, int XP) {
|
||||||
SkillType skill = getSkillType(skillType);
|
addModifiedXP(player, skillType, XP, "UNKNOWN");
|
||||||
|
}
|
||||||
|
|
||||||
UserManager.getPlayer(player).applyXpGain(skill, (int) (XP / skill.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()));
|
/**
|
||||||
|
* Adds XP to the player, calculates for XP Rate and skill modifier.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param player The player to add XP to
|
||||||
|
* @param skillType The skill to add XP to
|
||||||
|
* @param XP The amount of XP to add
|
||||||
|
* @param xpGainReason The reason to gain XP
|
||||||
|
*
|
||||||
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
|
* @throws InvalidXPGainReasonException if the given xpGainReason is not valid
|
||||||
|
*/
|
||||||
|
public static void addModifiedXP(Player player, String skillType, int XP, String xpGainReason) {
|
||||||
|
addModifiedXP(player, skillType, XP, xpGainReason, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds XP to the player, calculates for XP Rate and skill modifier.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param player The player to add XP to
|
||||||
|
* @param skillType The skill to add XP to
|
||||||
|
* @param XP The amount of XP to add
|
||||||
|
* @param xpGainReason The reason to gain XP
|
||||||
|
* @param isUnshared true if the XP cannot be shared with party members
|
||||||
|
*
|
||||||
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
|
* @throws InvalidXPGainReasonException if the given xpGainReason is not valid
|
||||||
|
*/
|
||||||
|
public static void addModifiedXP(Player player, String skillType, int XP, String xpGainReason, boolean isUnshared) {
|
||||||
|
PrimarySkill skill = getSkillType(skillType);
|
||||||
|
|
||||||
|
if (isUnshared) {
|
||||||
|
getPlayer(player).beginUnsharedXpGain(skill, (int) (XP / skill.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()), getXPGainReason(xpGainReason));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
getPlayer(player).applyXpGain(skill, (int) (XP / skill.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()), getXPGainReason(xpGainReason));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -149,8 +283,9 @@ public final class ExperienceAPI {
|
|||||||
* @throws InvalidSkillException if the given skill is not valid
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static void addModifiedXPOffline(String playerName, String skillType, int XP) {
|
public static void addModifiedXPOffline(String playerName, String skillType, int XP) {
|
||||||
SkillType skill = getSkillType(skillType);
|
PrimarySkill skill = getSkillType(skillType);
|
||||||
|
|
||||||
addOfflineXP(playerName, skill, (int) (XP / skill.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()));
|
addOfflineXP(playerName, skill, (int) (XP / skill.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()));
|
||||||
}
|
}
|
||||||
@@ -167,8 +302,51 @@ public final class ExperienceAPI {
|
|||||||
*
|
*
|
||||||
* @throws InvalidSkillException if the given skill is not valid
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static void addXP(Player player, String skillType, int XP) {
|
public static void addXP(Player player, String skillType, int XP) {
|
||||||
UserManager.getPlayer(player).beginXpGain(getSkillType(skillType), XP);
|
addXP(player, skillType, XP, "UNKNOWN");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds XP to the player, calculates for XP Rate, skill modifiers, perks, child skills,
|
||||||
|
* and party sharing.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param player The player to add XP to
|
||||||
|
* @param skillType The skill to add XP to
|
||||||
|
* @param XP The amount of XP to add
|
||||||
|
* @param xpGainReason The reason to gain XP
|
||||||
|
*
|
||||||
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
|
* @throws InvalidXPGainReasonException if the given xpGainReason is not valid
|
||||||
|
*/
|
||||||
|
public static void addXP(Player player, String skillType, int XP, String xpGainReason) {
|
||||||
|
addXP(player, skillType, XP, xpGainReason, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds XP to the player, calculates for XP Rate, skill modifiers, perks, child skills,
|
||||||
|
* and party sharing.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param player The player to add XP to
|
||||||
|
* @param skillType The skill to add XP to
|
||||||
|
* @param XP The amount of XP to add
|
||||||
|
* @param xpGainReason The reason to gain XP
|
||||||
|
* @param isUnshared true if the XP cannot be shared with party members
|
||||||
|
*
|
||||||
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
|
* @throws InvalidXPGainReasonException if the given xpGainReason is not valid
|
||||||
|
*/
|
||||||
|
public static void addXP(Player player, String skillType, int XP, String xpGainReason, boolean isUnshared) {
|
||||||
|
if (isUnshared) {
|
||||||
|
getPlayer(player).beginUnsharedXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
getPlayer(player).beginXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -184,7 +362,7 @@ public final class ExperienceAPI {
|
|||||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||||
*/
|
*/
|
||||||
public static int getXP(Player player, String skillType) {
|
public static int getXP(Player player, String skillType) {
|
||||||
return UserManager.getPlayer(player).getProfile().getSkillXpLevel(getNonChildSkillType(skillType));
|
return getPlayer(player).getSkillXpLevel(getNonChildSkillType(skillType));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -200,10 +378,28 @@ public final class ExperienceAPI {
|
|||||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static int getOfflineXP(String playerName, String skillType) {
|
public static int getOfflineXP(String playerName, String skillType) {
|
||||||
return getOfflineProfile(playerName).getSkillXpLevel(getNonChildSkillType(skillType));
|
return getOfflineProfile(playerName).getSkillXpLevel(getNonChildSkillType(skillType));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the amount of XP an offline player has in a specific skill.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param uuid The player to get XP for
|
||||||
|
* @param skillType The skill to get XP for
|
||||||
|
* @return the amount of XP in a given skill
|
||||||
|
*
|
||||||
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
|
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||||
|
*/
|
||||||
|
public static int getOfflineXP(UUID uuid, String skillType) {
|
||||||
|
return getOfflineProfile(uuid).getSkillXpLevel(getNonChildSkillType(skillType));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the raw amount of XP a player has in a specific skill.
|
* Get the raw amount of XP a player has in a specific skill.
|
||||||
* </br>
|
* </br>
|
||||||
@@ -217,7 +413,7 @@ public final class ExperienceAPI {
|
|||||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||||
*/
|
*/
|
||||||
public static float getXPRaw(Player player, String skillType) {
|
public static float getXPRaw(Player player, String skillType) {
|
||||||
return UserManager.getPlayer(player).getProfile().getSkillXpLevelRaw(getNonChildSkillType(skillType));
|
return getPlayer(player).getSkillXpLevelRaw(getNonChildSkillType(skillType));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -233,10 +429,28 @@ public final class ExperienceAPI {
|
|||||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static float getOfflineXPRaw(String playerName, String skillType) {
|
public static float getOfflineXPRaw(String playerName, String skillType) {
|
||||||
return getOfflineProfile(playerName).getSkillXpLevelRaw(getNonChildSkillType(skillType));
|
return getOfflineProfile(playerName).getSkillXpLevelRaw(getNonChildSkillType(skillType));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the raw amount of XP an offline player has in a specific skill.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param uuid The player to get XP for
|
||||||
|
* @param skillType The skill to get XP for
|
||||||
|
* @return the amount of XP in a given skill
|
||||||
|
*
|
||||||
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
|
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||||
|
*/
|
||||||
|
public static float getOfflineXPRaw(UUID uuid, String skillType) {
|
||||||
|
return getOfflineProfile(uuid).getSkillXpLevelRaw(getNonChildSkillType(skillType));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the total amount of XP needed to reach the next level.
|
* Get the total amount of XP needed to reach the next level.
|
||||||
* </br>
|
* </br>
|
||||||
@@ -250,7 +464,7 @@ public final class ExperienceAPI {
|
|||||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||||
*/
|
*/
|
||||||
public static int getXPToNextLevel(Player player, String skillType) {
|
public static int getXPToNextLevel(Player player, String skillType) {
|
||||||
return UserManager.getPlayer(player).getProfile().getXpToLevel(getNonChildSkillType(skillType));
|
return getPlayer(player).getXpToLevel(getNonChildSkillType(skillType));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -266,10 +480,28 @@ public final class ExperienceAPI {
|
|||||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static int getOfflineXPToNextLevel(String playerName, String skillType) {
|
public static int getOfflineXPToNextLevel(String playerName, String skillType) {
|
||||||
return getOfflineProfile(playerName).getXpToLevel(getNonChildSkillType(skillType));
|
return getOfflineProfile(playerName).getXpToLevel(getNonChildSkillType(skillType));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the total amount of XP an offline player needs to reach the next level.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param uuid The player to get XP for
|
||||||
|
* @param skillType The skill to get XP for
|
||||||
|
* @return the total amount of XP needed to reach the next level
|
||||||
|
*
|
||||||
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
|
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||||
|
*/
|
||||||
|
public static int getOfflineXPToNextLevel(UUID uuid, String skillType) {
|
||||||
|
return getOfflineProfile(uuid).getXpToLevel(getNonChildSkillType(skillType));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the amount of XP remaining until the next level.
|
* Get the amount of XP remaining until the next level.
|
||||||
* </br>
|
* </br>
|
||||||
@@ -283,9 +515,9 @@ public final class ExperienceAPI {
|
|||||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||||
*/
|
*/
|
||||||
public static int getXPRemaining(Player player, String skillType) {
|
public static int getXPRemaining(Player player, String skillType) {
|
||||||
SkillType skill = getNonChildSkillType(skillType);
|
PrimarySkill skill = getNonChildSkillType(skillType);
|
||||||
|
|
||||||
PlayerProfile profile = UserManager.getPlayer(player).getProfile();
|
PlayerProfile profile = getPlayer(player).getProfile();
|
||||||
|
|
||||||
return profile.getXpToLevel(skill) - profile.getSkillXpLevel(skill);
|
return profile.getXpToLevel(skill) - profile.getSkillXpLevel(skill);
|
||||||
}
|
}
|
||||||
@@ -303,14 +535,34 @@ public final class ExperienceAPI {
|
|||||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static int getOfflineXPRemaining(String playerName, String skillType) {
|
public static int getOfflineXPRemaining(String playerName, String skillType) {
|
||||||
SkillType skill = getNonChildSkillType(skillType);
|
PrimarySkill skill = getNonChildSkillType(skillType);
|
||||||
|
|
||||||
PlayerProfile profile = getOfflineProfile(playerName);
|
PlayerProfile profile = getOfflineProfile(playerName);
|
||||||
|
|
||||||
return profile.getXpToLevel(skill) - profile.getSkillXpLevel(skill);
|
return profile.getXpToLevel(skill) - profile.getSkillXpLevel(skill);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the amount of XP an offline player has left before leveling up.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param uuid The player to get XP for
|
||||||
|
* @param skillType The skill to get XP for
|
||||||
|
* @return the amount of XP needed to reach the next level
|
||||||
|
*
|
||||||
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
|
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||||
|
*/
|
||||||
|
public static float getOfflineXPRemaining(UUID uuid, String skillType) {
|
||||||
|
PrimarySkill skill = getNonChildSkillType(skillType);
|
||||||
|
PlayerProfile profile = getOfflineProfile(uuid);
|
||||||
|
|
||||||
|
return profile.getXpToLevel(skill) - profile.getSkillXpLevelRaw(skill);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add levels to a skill.
|
* Add levels to a skill.
|
||||||
* </br>
|
* </br>
|
||||||
@@ -323,7 +575,7 @@ public final class ExperienceAPI {
|
|||||||
* @throws InvalidSkillException if the given skill is not valid
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
*/
|
*/
|
||||||
public static void addLevel(Player player, String skillType, int levels) {
|
public static void addLevel(Player player, String skillType, int levels) {
|
||||||
UserManager.getPlayer(player).getProfile().addLevels(getSkillType(skillType), levels);
|
getPlayer(player).addLevels(getSkillType(skillType), levels);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -338,23 +590,55 @@ public final class ExperienceAPI {
|
|||||||
* @throws InvalidSkillException if the given skill is not valid
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static void addLevelOffline(String playerName, String skillType, int levels) {
|
public static void addLevelOffline(String playerName, String skillType, int levels) {
|
||||||
PlayerProfile profile = getOfflineProfile(playerName);
|
PlayerProfile profile = getOfflineProfile(playerName);
|
||||||
SkillType skill = getSkillType(skillType);
|
PrimarySkill skill = getSkillType(skillType);
|
||||||
|
|
||||||
if (skill.isChildSkill()) {
|
if (skill.isChildSkill()) {
|
||||||
Set<SkillType> parentSkills = FamilyTree.getParents(skill);
|
Set<PrimarySkill> parentSkills = FamilyTree.getParents(skill);
|
||||||
|
|
||||||
for (SkillType parentSkill : parentSkills) {
|
for (PrimarySkill parentSkill : parentSkills) {
|
||||||
profile.addLevels(parentSkill, (levels / parentSkills.size()));
|
profile.addLevels(parentSkill, (levels / parentSkills.size()));
|
||||||
}
|
}
|
||||||
|
|
||||||
profile.save();
|
profile.scheduleAsyncSave();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
profile.addLevels(skill, levels);
|
profile.addLevels(skill, levels);
|
||||||
profile.save();
|
profile.scheduleAsyncSave();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add levels to a skill for an offline player.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param uuid The player to add levels to
|
||||||
|
* @param skillType Type of skill to add levels to
|
||||||
|
* @param levels Number of levels to add
|
||||||
|
*
|
||||||
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
|
*/
|
||||||
|
public static void addLevelOffline(UUID uuid, String skillType, int levels) {
|
||||||
|
PlayerProfile profile = getOfflineProfile(uuid);
|
||||||
|
PrimarySkill skill = getSkillType(skillType);
|
||||||
|
|
||||||
|
if (skill.isChildSkill()) {
|
||||||
|
Set<PrimarySkill> parentSkills = FamilyTree.getParents(skill);
|
||||||
|
|
||||||
|
for (PrimarySkill parentSkill : parentSkills) {
|
||||||
|
profile.addLevels(parentSkill, (levels / parentSkills.size()));
|
||||||
|
}
|
||||||
|
|
||||||
|
profile.scheduleAsyncSave();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
profile.addLevels(skill, levels);
|
||||||
|
profile.scheduleAsyncSave();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -369,7 +653,7 @@ public final class ExperienceAPI {
|
|||||||
* @throws InvalidSkillException if the given skill is not valid
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
*/
|
*/
|
||||||
public static int getLevel(Player player, String skillType) {
|
public static int getLevel(Player player, String skillType) {
|
||||||
return UserManager.getPlayer(player).getProfile().getSkillLevel(getSkillType(skillType));
|
return getPlayer(player).getSkillLevel(getSkillType(skillType));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -384,10 +668,27 @@ public final class ExperienceAPI {
|
|||||||
* @throws InvalidSkillException if the given skill is not valid
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static int getLevelOffline(String playerName, String skillType) {
|
public static int getLevelOffline(String playerName, String skillType) {
|
||||||
return getOfflineProfile(playerName).getSkillLevel(getSkillType(skillType));
|
return getOfflineProfile(playerName).getSkillLevel(getSkillType(skillType));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the level an offline player has in a specific skill.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param uuid The player to get the level for
|
||||||
|
* @param skillType The skill to get the level for
|
||||||
|
* @return the level of a given skill
|
||||||
|
*
|
||||||
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
|
*/
|
||||||
|
public static int getLevelOffline(UUID uuid, String skillType) {
|
||||||
|
return getOfflineProfile(uuid).getSkillLevel(getSkillType(skillType));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the power level of a player.
|
* Gets the power level of a player.
|
||||||
* </br>
|
* </br>
|
||||||
@@ -397,7 +698,7 @@ public final class ExperienceAPI {
|
|||||||
* @return the power level of the player
|
* @return the power level of the player
|
||||||
*/
|
*/
|
||||||
public static int getPowerLevel(Player player) {
|
public static int getPowerLevel(Player player) {
|
||||||
return UserManager.getPlayer(player).getPowerLevel();
|
return getPlayer(player).getPowerLevel();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -410,11 +711,33 @@ public final class ExperienceAPI {
|
|||||||
*
|
*
|
||||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static int getPowerLevelOffline(String playerName) {
|
public static int getPowerLevelOffline(String playerName) {
|
||||||
int powerLevel = 0;
|
int powerLevel = 0;
|
||||||
PlayerProfile profile = getOfflineProfile(playerName);
|
PlayerProfile profile = getOfflineProfile(playerName);
|
||||||
|
|
||||||
for (SkillType type : SkillType.NON_CHILD_SKILLS) {
|
for (PrimarySkill type : PrimarySkill.NON_CHILD_SKILLS) {
|
||||||
|
powerLevel += profile.getSkillLevel(type);
|
||||||
|
}
|
||||||
|
|
||||||
|
return powerLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the power level of an offline player.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param uuid The player to get the power level for
|
||||||
|
* @return the power level of the player
|
||||||
|
*
|
||||||
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
|
*/
|
||||||
|
public static int getPowerLevelOffline(UUID uuid) {
|
||||||
|
int powerLevel = 0;
|
||||||
|
PlayerProfile profile = getOfflineProfile(uuid);
|
||||||
|
|
||||||
|
for (PrimarySkill type : PrimarySkill.NON_CHILD_SKILLS) {
|
||||||
powerLevel += profile.getSkillLevel(type);
|
powerLevel += profile.getSkillLevel(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -460,10 +783,28 @@ public final class ExperienceAPI {
|
|||||||
*
|
*
|
||||||
* @return the position on the leaderboard
|
* @return the position on the leaderboard
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static int getPlayerRankSkill(String playerName, String skillType) {
|
public static int getPlayerRankSkill(String playerName, String skillType) {
|
||||||
return mcMMO.getDatabaseManager().readRank(getOfflineProfile(playerName).getPlayerName()).get(getNonChildSkillType(skillType));
|
return mcMMO.getDatabaseManager().readRank(getOfflineProfile(playerName).getPlayerName()).get(getNonChildSkillType(skillType));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the position on the leaderboard of a player.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param uuid The name of the player to check
|
||||||
|
* @param skillType The skill to check
|
||||||
|
*
|
||||||
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
|
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||||
|
*
|
||||||
|
* @return the position on the leaderboard
|
||||||
|
*/
|
||||||
|
public static int getPlayerRankSkill(UUID uuid, String skillType) {
|
||||||
|
return mcMMO.getDatabaseManager().readRank(getOfflineProfile(uuid).getPlayerName()).get(getNonChildSkillType(skillType));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the position on the power level leaderboard of a player.
|
* Get the position on the power level leaderboard of a player.
|
||||||
@@ -476,10 +817,26 @@ public final class ExperienceAPI {
|
|||||||
*
|
*
|
||||||
* @return the position on the power level leaderboard
|
* @return the position on the power level leaderboard
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static int getPlayerRankOverall(String playerName) {
|
public static int getPlayerRankOverall(String playerName) {
|
||||||
return mcMMO.getDatabaseManager().readRank(getOfflineProfile(playerName).getPlayerName()).get(null);
|
return mcMMO.getDatabaseManager().readRank(getOfflineProfile(playerName).getPlayerName()).get(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the position on the power level leaderboard of a player.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param uuid The name of the player to check
|
||||||
|
*
|
||||||
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
|
*
|
||||||
|
* @return the position on the power level leaderboard
|
||||||
|
*/
|
||||||
|
public static int getPlayerRankOverall(UUID uuid) {
|
||||||
|
return mcMMO.getDatabaseManager().readRank(getOfflineProfile(uuid).getPlayerName()).get(null);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the level of a player in a specific skill type.
|
* Sets the level of a player in a specific skill type.
|
||||||
* </br>
|
* </br>
|
||||||
@@ -492,7 +849,7 @@ public final class ExperienceAPI {
|
|||||||
* @throws InvalidSkillException if the given skill is not valid
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
*/
|
*/
|
||||||
public static void setLevel(Player player, String skillType, int skillLevel) {
|
public static void setLevel(Player player, String skillType, int skillLevel) {
|
||||||
UserManager.getPlayer(player).getProfile().modifySkill(getSkillType(skillType), skillLevel);
|
getPlayer(player).modifySkill(getSkillType(skillType), skillLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -507,10 +864,27 @@ public final class ExperienceAPI {
|
|||||||
* @throws InvalidSkillException if the given skill is not valid
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static void setLevelOffline(String playerName, String skillType, int skillLevel) {
|
public static void setLevelOffline(String playerName, String skillType, int skillLevel) {
|
||||||
getOfflineProfile(playerName).modifySkill(getSkillType(skillType), skillLevel);
|
getOfflineProfile(playerName).modifySkill(getSkillType(skillType), skillLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the level of an offline player in a specific skill type.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param uuid The player to set the level of
|
||||||
|
* @param skillType The skill to set the level for
|
||||||
|
* @param skillLevel The value to set the level to
|
||||||
|
*
|
||||||
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
|
*/
|
||||||
|
public static void setLevelOffline(UUID uuid, String skillType, int skillLevel) {
|
||||||
|
getOfflineProfile(uuid).modifySkill(getSkillType(skillType), skillLevel);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the XP of a player in a specific skill type.
|
* Sets the XP of a player in a specific skill type.
|
||||||
* </br>
|
* </br>
|
||||||
@@ -524,7 +898,7 @@ public final class ExperienceAPI {
|
|||||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||||
*/
|
*/
|
||||||
public static void setXP(Player player, String skillType, int newValue) {
|
public static void setXP(Player player, String skillType, int newValue) {
|
||||||
UserManager.getPlayer(player).getProfile().setSkillXpLevel(getNonChildSkillType(skillType), newValue);
|
getPlayer(player).setSkillXpLevel(getNonChildSkillType(skillType), newValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -540,10 +914,28 @@ public final class ExperienceAPI {
|
|||||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static void setXPOffline(String playerName, String skillType, int newValue) {
|
public static void setXPOffline(String playerName, String skillType, int newValue) {
|
||||||
getOfflineProfile(playerName).setSkillXpLevel(getNonChildSkillType(skillType), newValue);
|
getOfflineProfile(playerName).setSkillXpLevel(getNonChildSkillType(skillType), newValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the XP of an offline player in a specific skill type.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param uuid The player to set the XP of
|
||||||
|
* @param skillType The skill to set the XP for
|
||||||
|
* @param newValue The value to set the XP to
|
||||||
|
*
|
||||||
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
|
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||||
|
*/
|
||||||
|
public static void setXPOffline(UUID uuid, String skillType, int newValue) {
|
||||||
|
getOfflineProfile(uuid).setSkillXpLevel(getNonChildSkillType(skillType), newValue);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes XP from a player in a specific skill type.
|
* Removes XP from a player in a specific skill type.
|
||||||
* </br>
|
* </br>
|
||||||
@@ -557,7 +949,7 @@ public final class ExperienceAPI {
|
|||||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||||
*/
|
*/
|
||||||
public static void removeXP(Player player, String skillType, int xp) {
|
public static void removeXP(Player player, String skillType, int xp) {
|
||||||
UserManager.getPlayer(player).getProfile().removeXp(getNonChildSkillType(skillType), xp);
|
getPlayer(player).removeXp(getNonChildSkillType(skillType), xp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -573,32 +965,73 @@ public final class ExperienceAPI {
|
|||||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static void removeXPOffline(String playerName, String skillType, int xp) {
|
public static void removeXPOffline(String playerName, String skillType, int xp) {
|
||||||
getOfflineProfile(playerName).removeXp(getNonChildSkillType(skillType), xp);
|
getOfflineProfile(playerName).removeXp(getNonChildSkillType(skillType), xp);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Utility methods follow.
|
/**
|
||||||
|
* Removes XP from an offline player in a specific skill type.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param uuid The player to change the XP of
|
||||||
|
* @param skillType The skill to change the XP for
|
||||||
|
* @param xp The amount of XP to remove
|
||||||
|
*
|
||||||
|
* @throws InvalidSkillException if the given skill is not valid
|
||||||
|
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||||
|
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||||
|
*/
|
||||||
|
public static void removeXPOffline(UUID uuid, String skillType, int xp) {
|
||||||
|
getOfflineProfile(uuid).removeXp(getNonChildSkillType(skillType), xp);
|
||||||
|
}
|
||||||
|
|
||||||
private static void addOfflineXP(String playerName, SkillType skill, int XP) {
|
/**
|
||||||
|
* Check how much XP is needed for a specific level with the selected level curve.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param level The level to get the amount of XP for
|
||||||
|
*
|
||||||
|
* @throws InvalidFormulaTypeException if the given formulaType is not valid
|
||||||
|
*/
|
||||||
|
public static int getXpNeededToLevel(int level) {
|
||||||
|
return mcMMO.getFormulaManager().getCachedXpToLevel(level, ExperienceConfig.getInstance().getFormulaType());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check how much XP is needed for a specific level with the provided level curve.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param level The level to get the amount of XP for
|
||||||
|
* @param formulaType The formula type to get the amount of XP for
|
||||||
|
*
|
||||||
|
* @throws InvalidFormulaTypeException if the given formulaType is not valid
|
||||||
|
*/
|
||||||
|
public static int getXpNeededToLevel(int level, String formulaType) {
|
||||||
|
return mcMMO.getFormulaManager().getCachedXpToLevel(level, getFormulaType(formulaType));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Utility methods follow.
|
||||||
|
private static void addOfflineXP(UUID playerUniqueId, PrimarySkill skill, int XP) {
|
||||||
|
PlayerProfile profile = getOfflineProfile(playerUniqueId);
|
||||||
|
|
||||||
|
profile.addXp(skill, XP);
|
||||||
|
profile.save();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
private static void addOfflineXP(String playerName, PrimarySkill skill, int XP) {
|
||||||
PlayerProfile profile = getOfflineProfile(playerName);
|
PlayerProfile profile = getOfflineProfile(playerName);
|
||||||
|
|
||||||
if (skill.isChildSkill()) {
|
profile.addXp(skill, XP);
|
||||||
Set<SkillType> parentSkills = FamilyTree.getParents(skill);
|
profile.scheduleAsyncSave();
|
||||||
|
|
||||||
for (SkillType parentSkill : parentSkills) {
|
|
||||||
profile.setSkillXpLevel(parentSkill, profile.getSkillLevel(parentSkill) + (XP / parentSkills.size()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
profile.save();
|
private static PlayerProfile getOfflineProfile(UUID uuid) {
|
||||||
return;
|
PlayerProfile profile = mcMMO.getDatabaseManager().loadPlayerProfile(uuid);
|
||||||
}
|
|
||||||
|
|
||||||
profile.setSkillXpLevel(skill, profile.getSkillXpLevel(skill) + XP);
|
|
||||||
profile.save();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static PlayerProfile getOfflineProfile(String playerName) {
|
|
||||||
PlayerProfile profile = mcMMO.getDatabaseManager().loadPlayerProfile(playerName, false);
|
|
||||||
|
|
||||||
if (!profile.isLoaded()) {
|
if (!profile.isLoaded()) {
|
||||||
throw new InvalidPlayerException();
|
throw new InvalidPlayerException();
|
||||||
@@ -607,8 +1040,20 @@ public final class ExperienceAPI {
|
|||||||
return profile;
|
return profile;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static SkillType getSkillType(String skillType) throws InvalidSkillException {
|
@Deprecated
|
||||||
SkillType skill = SkillType.getSkill(skillType);
|
private static PlayerProfile getOfflineProfile(String playerName) {
|
||||||
|
UUID uuid = mcMMO.p.getServer().getOfflinePlayer(playerName).getUniqueId();
|
||||||
|
PlayerProfile profile = mcMMO.getDatabaseManager().loadPlayerProfile(uuid);
|
||||||
|
|
||||||
|
if (!profile.isLoaded()) {
|
||||||
|
throw new InvalidPlayerException();
|
||||||
|
}
|
||||||
|
|
||||||
|
return profile;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static PrimarySkill getSkillType(String skillType) throws InvalidSkillException {
|
||||||
|
PrimarySkill skill = PrimarySkill.getSkill(skillType);
|
||||||
|
|
||||||
if (skill == null) {
|
if (skill == null) {
|
||||||
throw new InvalidSkillException();
|
throw new InvalidSkillException();
|
||||||
@@ -617,8 +1062,8 @@ public final class ExperienceAPI {
|
|||||||
return skill;
|
return skill;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static SkillType getNonChildSkillType(String skillType) throws InvalidSkillException, UnsupportedOperationException {
|
private static PrimarySkill getNonChildSkillType(String skillType) throws InvalidSkillException, UnsupportedOperationException {
|
||||||
SkillType skill = getSkillType(skillType);
|
PrimarySkill skill = getSkillType(skillType);
|
||||||
|
|
||||||
if (skill.isChildSkill()) {
|
if (skill.isChildSkill()) {
|
||||||
throw new UnsupportedOperationException("Child skills do not have XP");
|
throw new UnsupportedOperationException("Child skills do not have XP");
|
||||||
@@ -626,4 +1071,32 @@ public final class ExperienceAPI {
|
|||||||
|
|
||||||
return skill;
|
return skill;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static XPGainReason getXPGainReason(String reason) throws InvalidXPGainReasonException {
|
||||||
|
XPGainReason xpGainReason = XPGainReason.getXPGainReason(reason);
|
||||||
|
|
||||||
|
if (xpGainReason == null) {
|
||||||
|
throw new InvalidXPGainReasonException();
|
||||||
|
}
|
||||||
|
|
||||||
|
return xpGainReason;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static FormulaType getFormulaType(String formula) throws InvalidFormulaTypeException {
|
||||||
|
FormulaType formulaType = FormulaType.getFormulaType(formula);
|
||||||
|
|
||||||
|
if (formulaType == null) {
|
||||||
|
throw new InvalidFormulaTypeException();
|
||||||
|
}
|
||||||
|
|
||||||
|
return formulaType;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static McMMOPlayer getPlayer(Player player) throws McMMOPlayerNotFoundException {
|
||||||
|
if (!UserManager.hasPlayerDataKey(player)) {
|
||||||
|
throw new McMMOPlayerNotFoundException(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
return UserManager.getPlayer(player);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,17 @@
|
|||||||
package com.gmail.nossr50.api;
|
package com.gmail.nossr50.api;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
|
import com.gmail.nossr50.datatypes.party.PartyLeader;
|
||||||
import com.gmail.nossr50.party.PartyManager;
|
import com.gmail.nossr50.party.PartyManager;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
@@ -79,7 +82,7 @@ public final class PartyAPI {
|
|||||||
Party party = PartyManager.getParty(partyName);
|
Party party = PartyManager.getParty(partyName);
|
||||||
|
|
||||||
if (party == null) {
|
if (party == null) {
|
||||||
party = new Party(player.getName(), partyName);
|
party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName);
|
||||||
}
|
}
|
||||||
|
|
||||||
PartyManager.addToParty(UserManager.getPlayer(player), party);
|
PartyManager.addToParty(UserManager.getPlayer(player), party);
|
||||||
@@ -105,7 +108,7 @@ public final class PartyAPI {
|
|||||||
* @return the leader of the party
|
* @return the leader of the party
|
||||||
*/
|
*/
|
||||||
public static String getPartyLeader(String partyName) {
|
public static String getPartyLeader(String partyName) {
|
||||||
return PartyManager.getPartyLeader(partyName);
|
return PartyManager.getPartyLeaderName(partyName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -114,10 +117,11 @@ public final class PartyAPI {
|
|||||||
* This function is designed for API usage.
|
* This function is designed for API usage.
|
||||||
*
|
*
|
||||||
* @param partyName The name of the party to set the leader of
|
* @param partyName The name of the party to set the leader of
|
||||||
* @param player The player to set as leader
|
* @param playerName The playerName to set as leader
|
||||||
*/
|
*/
|
||||||
public static void setPartyLeader(String partyName, String player) {
|
@Deprecated
|
||||||
PartyManager.setPartyLeader(player, PartyManager.getParty(partyName));
|
public static void setPartyLeader(String partyName, String playerName) {
|
||||||
|
PartyManager.setPartyLeader(mcMMO.p.getServer().getOfflinePlayer(playerName).getUniqueId(), PartyManager.getParty(partyName));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -132,8 +136,8 @@ public final class PartyAPI {
|
|||||||
public static List<OfflinePlayer> getOnlineAndOfflineMembers(Player player) {
|
public static List<OfflinePlayer> getOnlineAndOfflineMembers(Player player) {
|
||||||
List<OfflinePlayer> members = new ArrayList<OfflinePlayer>();
|
List<OfflinePlayer> members = new ArrayList<OfflinePlayer>();
|
||||||
|
|
||||||
for (String memberName : PartyManager.getAllMembers(player)) {
|
for (UUID memberUniqueId : PartyManager.getAllMembers(player).keySet()) {
|
||||||
OfflinePlayer member = mcMMO.p.getServer().getOfflinePlayer(memberName);
|
OfflinePlayer member = mcMMO.p.getServer().getOfflinePlayer(memberUniqueId);
|
||||||
members.add(member);
|
members.add(member);
|
||||||
}
|
}
|
||||||
return members;
|
return members;
|
||||||
@@ -147,7 +151,20 @@ public final class PartyAPI {
|
|||||||
* @param player The player to check
|
* @param player The player to check
|
||||||
* @return all the player names in the player's party
|
* @return all the player names in the player's party
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static LinkedHashSet<String> getMembers(Player player) {
|
public static LinkedHashSet<String> getMembers(Player player) {
|
||||||
|
return (LinkedHashSet<String>) PartyManager.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 PartyManager.getAllMembers(player);
|
return PartyManager.getAllMembers(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -174,4 +191,17 @@ public final class PartyAPI {
|
|||||||
public static List<Player> getOnlineMembers(Player player) {
|
public static List<Player> getOnlineMembers(Player player) {
|
||||||
return PartyManager.getOnlineMembers(player);
|
return PartyManager.getOnlineMembers(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean hasAlly(String partyName) {
|
||||||
|
return getAllyName(partyName) != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getAllyName(String partyName) {
|
||||||
|
Party ally = PartyManager.getParty(partyName).getAlly();
|
||||||
|
if (ally != null) {
|
||||||
|
return ally.getName();
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
93
src/main/java/com/gmail/nossr50/api/SkillAPI.java
Normal file
93
src/main/java/com/gmail/nossr50/api/SkillAPI.java
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
package com.gmail.nossr50.api;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.skills.PrimarySkill;
|
||||||
|
|
||||||
|
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(PrimarySkill.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(PrimarySkill.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(PrimarySkill.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(PrimarySkill.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(PrimarySkill.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(PrimarySkill.MISC_SKILLS);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<String> getListFromEnum(List<PrimarySkill> skillsTypes) {
|
||||||
|
List<String> skills = new ArrayList<String>();
|
||||||
|
|
||||||
|
for (PrimarySkill primarySkill : skillsTypes) {
|
||||||
|
skills.add(primarySkill.name());
|
||||||
|
}
|
||||||
|
|
||||||
|
return skills;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.gmail.nossr50.api.exceptions;
|
||||||
|
|
||||||
|
public class InvalidFormulaTypeException extends RuntimeException {
|
||||||
|
private static final long serialVersionUID = 3368670229490121886L;
|
||||||
|
|
||||||
|
public InvalidFormulaTypeException() {
|
||||||
|
super("That is not a valid FormulaType.");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.gmail.nossr50.api.exceptions;
|
||||||
|
|
||||||
|
public class InvalidXPGainReasonException extends RuntimeException {
|
||||||
|
private static final long serialVersionUID = 4427052841957931157L;
|
||||||
|
|
||||||
|
public InvalidXPGainReasonException() {
|
||||||
|
super("That is not a valid XPGainReason.");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.gmail.nossr50.api.exceptions;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class McMMOPlayerNotFoundException extends RuntimeException {
|
||||||
|
private static final long serialVersionUID = 761917904993202836L;
|
||||||
|
|
||||||
|
public McMMOPlayerNotFoundException(Player player) {
|
||||||
|
super("McMMOPlayer object was not found for: " + player.getName() + " " + player.getUniqueId());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,9 @@
|
|||||||
package com.gmail.nossr50.chat;
|
package com.gmail.nossr50.chat;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
|
import com.gmail.nossr50.events.chat.McMMOPartyChatEvent;
|
||||||
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
@@ -33,6 +37,36 @@ public abstract class ChatManager {
|
|||||||
message = LocaleLoader.formatString(chatPrefix, displayName) + " " + event.getMessage();
|
message = LocaleLoader.formatString(chatPrefix, displayName) + " " + event.getMessage();
|
||||||
|
|
||||||
sendMessage();
|
sendMessage();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Party Chat Spying
|
||||||
|
* Party messages will be copied to people with the mcmmo.admin.chatspy permission node
|
||||||
|
*/
|
||||||
|
if(event instanceof McMMOPartyChatEvent)
|
||||||
|
{
|
||||||
|
//We need to grab the party chat name
|
||||||
|
McMMOPartyChatEvent partyChatEvent = (McMMOPartyChatEvent) event;
|
||||||
|
|
||||||
|
//Find the people with permissions
|
||||||
|
for(Player player : event.getPlugin().getServer().getOnlinePlayers())
|
||||||
|
{
|
||||||
|
//Check for toggled players
|
||||||
|
if(UserManager.getPlayer(player).isPartyChatSpying())
|
||||||
|
{
|
||||||
|
Party adminParty = UserManager.getPlayer(player).getParty();
|
||||||
|
|
||||||
|
//Only message admins not part of this party
|
||||||
|
if(adminParty != null)
|
||||||
|
{
|
||||||
|
//TODO: Incorporate JSON
|
||||||
|
if(!adminParty.getName().equalsIgnoreCase(partyChatEvent.getParty()))
|
||||||
|
player.sendMessage(ChatColor.GOLD+"[SPY: "+ChatColor.GREEN+partyChatEvent.getParty()+ChatColor.GOLD+"] "+message);
|
||||||
|
} else {
|
||||||
|
player.sendMessage(ChatColor.GOLD+"[SPY: "+ChatColor.GREEN+partyChatEvent.getParty()+ChatColor.GOLD+"] "+message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void handleChat(String senderName, String message) {
|
public void handleChat(String senderName, String message) {
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
package com.gmail.nossr50.chat;
|
package com.gmail.nossr50.chat;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
import com.gmail.nossr50.config.Config;
|
import com.gmail.nossr50.config.Config;
|
||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
import com.gmail.nossr50.events.chat.McMMOPartyChatEvent;
|
import com.gmail.nossr50.events.chat.McMMOPartyChatEvent;
|
||||||
|
import com.gmail.nossr50.runnables.party.PartyChatTask;
|
||||||
|
|
||||||
public class PartyChatManager extends ChatManager {
|
public class PartyChatManager extends ChatManager {
|
||||||
private Party party;
|
private Party party;
|
||||||
@@ -26,14 +25,6 @@ public class PartyChatManager extends ChatManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void sendMessage() {
|
protected void sendMessage() {
|
||||||
if (Config.getInstance().getPartyChatColorLeaderName() && senderName.equalsIgnoreCase(party.getLeader())) {
|
new PartyChatTask(plugin, party, senderName, displayName, message).runTask(plugin);
|
||||||
message = message.replaceFirst(displayName, ChatColor.GOLD + displayName + ChatColor.RESET);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Player member : party.getOnlineMembers()) {
|
|
||||||
member.sendMessage(message);
|
|
||||||
}
|
|
||||||
|
|
||||||
plugin.getLogger().info("[P]<" + party.getName() + ">" + message);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,16 +2,13 @@ package com.gmail.nossr50.commands;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabExecutor;
|
import org.bukkit.command.TabExecutor;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.util.StringUtil;
|
import org.bukkit.util.StringUtil;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.util.Misc;
|
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
@@ -32,7 +29,11 @@ public class KrakenCommand implements TabExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
UserManager.getPlayer((Player) sender).getFishingManager().unleashTheKraken();
|
if (!CommandUtils.hasPlayerDataKey(sender)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
UserManager.getPlayer(sender.getName()).getFishingManager().unleashTheKraken();
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
@@ -41,7 +42,7 @@ public class KrakenCommand implements TabExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
String playerName = Misc.getMatchedPlayerName(args[0]);
|
String playerName = CommandUtils.getMatchedPlayerName(args[0]);
|
||||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(playerName);
|
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(playerName);
|
||||||
|
|
||||||
if (!CommandUtils.checkPlayerExistence(sender, playerName, mcMMOPlayer)) {
|
if (!CommandUtils.checkPlayerExistence(sender, playerName, mcMMOPlayer)) {
|
||||||
@@ -60,7 +61,7 @@ public class KrakenCommand implements TabExecutor {
|
|||||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 1:
|
case 1:
|
||||||
Set<String> playerNames = UserManager.getPlayerNames();
|
List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
|
||||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<String>(playerNames.size()));
|
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<String>(playerNames.size()));
|
||||||
default:
|
default:
|
||||||
return ImmutableList.of();
|
return ImmutableList.of();
|
||||||
|
|||||||
46
src/main/java/com/gmail/nossr50/commands/MHDCommand.java
Normal file
46
src/main/java/com/gmail/nossr50/commands/MHDCommand.java
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
package com.gmail.nossr50.commands;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.command.TabExecutor;
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.config.Config;
|
||||||
|
import com.gmail.nossr50.database.FlatfileDatabaseManager;
|
||||||
|
import com.gmail.nossr50.database.SQLDatabaseManager;
|
||||||
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
||||||
|
public class MHDCommand implements TabExecutor {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
|
if (mcMMO.getDatabaseManager() instanceof SQLDatabaseManager) {
|
||||||
|
SQLDatabaseManager m = (SQLDatabaseManager) mcMMO.getDatabaseManager();
|
||||||
|
m.resetMobHealthSettings();
|
||||||
|
for (McMMOPlayer player : UserManager.getPlayers()) {
|
||||||
|
player.getProfile().setMobHealthbarType(Config.getInstance().getMobHealthbarDefault());
|
||||||
|
}
|
||||||
|
sender.sendMessage("Mob health reset");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (mcMMO.getDatabaseManager() instanceof FlatfileDatabaseManager) {
|
||||||
|
FlatfileDatabaseManager m = (FlatfileDatabaseManager) mcMMO.getDatabaseManager();
|
||||||
|
m.resetMobHealthSettings();
|
||||||
|
for (McMMOPlayer player : UserManager.getPlayers()) {
|
||||||
|
player.getProfile().setMobHealthbarType(Config.getInstance().getMobHealthbarDefault());
|
||||||
|
}
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
351
src/main/java/com/gmail/nossr50/commands/McImportCommand.java
Normal file
351
src/main/java/com/gmail/nossr50/commands/McImportCommand.java
Normal file
@@ -0,0 +1,351 @@
|
|||||||
|
package com.gmail.nossr50.commands;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.Closeable;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.FileWriter;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.datatypes.skills.ModConfigType;
|
||||||
|
import com.gmail.nossr50.util.Misc;
|
||||||
|
|
||||||
|
public class McImportCommand implements CommandExecutor {
|
||||||
|
int fileAmount;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
|
switch (args.length) {
|
||||||
|
case 0:
|
||||||
|
importModConfig();
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean importModConfig() {
|
||||||
|
String importFilePath = mcMMO.getModDirectory() + File.separator + "import";
|
||||||
|
File importFile = new File(importFilePath, "import.log");
|
||||||
|
mcMMO.p.getLogger().info("Starting import of mod materials...");
|
||||||
|
fileAmount = 0;
|
||||||
|
|
||||||
|
HashMap<ModConfigType, ArrayList<String>> materialNames = new HashMap<ModConfigType, ArrayList<String>>();
|
||||||
|
|
||||||
|
BufferedReader in = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Open the file
|
||||||
|
in = new BufferedReader(new FileReader(importFile));
|
||||||
|
|
||||||
|
String line;
|
||||||
|
String materialName;
|
||||||
|
String modName;
|
||||||
|
|
||||||
|
// While not at the end of the file
|
||||||
|
while ((line = in.readLine()) != null) {
|
||||||
|
String[] split1 = line.split("material ");
|
||||||
|
|
||||||
|
if (split1.length != 2) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
String[] split2 = split1[1].split(" with");
|
||||||
|
|
||||||
|
if (split2.length != 2) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
materialName = split2[0];
|
||||||
|
|
||||||
|
// Categorise each material under a mod config type
|
||||||
|
ModConfigType type = ModConfigType.getModConfigType(materialName);
|
||||||
|
|
||||||
|
if (!materialNames.containsKey(type)) {
|
||||||
|
materialNames.put(type, new ArrayList<String>());
|
||||||
|
}
|
||||||
|
|
||||||
|
materialNames.get(type).add(materialName);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (FileNotFoundException e) {
|
||||||
|
mcMMO.p.getLogger().warning("Could not find " + importFile.getAbsolutePath() + " ! (No such file or directory)");
|
||||||
|
mcMMO.p.getLogger().warning("Copy and paste latest.log to " + importFile.getParentFile().getAbsolutePath() + " and rename it to import.log");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
tryClose(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
createOutput(materialNames);
|
||||||
|
|
||||||
|
mcMMO.p.getLogger().info("Import finished! Created " + fileAmount + " files!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createOutput(HashMap<ModConfigType, ArrayList<String>> materialNames) {
|
||||||
|
for (ModConfigType modConfigType : materialNames.keySet()) {
|
||||||
|
HashMap<String, ArrayList<String>> materialNamesType = new HashMap<String, ArrayList<String>>();
|
||||||
|
|
||||||
|
for (String materialName : materialNames.get(modConfigType)) {
|
||||||
|
String modName = Misc.getModName(materialName);
|
||||||
|
|
||||||
|
if (!materialNamesType.containsKey(modName)) {
|
||||||
|
materialNamesType.put(modName, new ArrayList<String>());
|
||||||
|
}
|
||||||
|
|
||||||
|
materialNamesType.get(modName).add(materialName);
|
||||||
|
}
|
||||||
|
|
||||||
|
createOutput(modConfigType, materialNamesType);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void tryClose(Closeable c) {
|
||||||
|
if (c == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
c.close();
|
||||||
|
}
|
||||||
|
catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createOutput(ModConfigType modConfigType, HashMap<String, ArrayList<String>> materialNames) {
|
||||||
|
File outputFilePath = new File(mcMMO.getModDirectory() + File.separator + "output");
|
||||||
|
if (!outputFilePath.exists() && !outputFilePath.mkdirs()) {
|
||||||
|
mcMMO.p.getLogger().severe("Could not create output directory! " + outputFilePath.getAbsolutePath());
|
||||||
|
}
|
||||||
|
|
||||||
|
FileWriter out = null;
|
||||||
|
String type = modConfigType.name().toLowerCase();
|
||||||
|
|
||||||
|
for (String modName : materialNames.keySet()) {
|
||||||
|
File outputFile = new File(outputFilePath, modName + "." + type + ".yml");
|
||||||
|
mcMMO.p.getLogger().info("Creating " + outputFile.getName());
|
||||||
|
try {
|
||||||
|
if (outputFile.exists() && !outputFile.delete()) {
|
||||||
|
mcMMO.p.getLogger().severe("Not able to delete old output file! " + outputFile.getAbsolutePath());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!outputFile.createNewFile()) {
|
||||||
|
mcMMO.p.getLogger().severe("Could not create output file! " + outputFile.getAbsolutePath());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
StringBuilder writer = new StringBuilder();
|
||||||
|
HashMap<String, ArrayList<String>> configSections = getConfigSections(modConfigType, modName, materialNames);
|
||||||
|
|
||||||
|
if (configSections == null) {
|
||||||
|
mcMMO.p.getLogger().severe("Something went wrong!! type is " + type);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write the file, go through each skill and write all the materials
|
||||||
|
for (String configSection : configSections.keySet()) {
|
||||||
|
if (configSection.equals("UNIDENTIFIED")) {
|
||||||
|
writer.append("# This isn't a valid config section and all materials in this category need to be").append("\r\n");
|
||||||
|
writer.append("# copy and pasted to a valid section of this config file.").append("\r\n");
|
||||||
|
}
|
||||||
|
writer.append(configSection).append(":").append("\r\n");
|
||||||
|
|
||||||
|
for (String line : configSections.get(configSection)) {
|
||||||
|
writer.append(line).append("\r\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
writer.append("\r\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
out = new FileWriter(outputFile);
|
||||||
|
out.write(writer.toString());
|
||||||
|
}
|
||||||
|
catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
tryClose(out);
|
||||||
|
fileAmount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private HashMap<String, ArrayList<String>> getConfigSections(ModConfigType type, String modName, HashMap<String, ArrayList<String>> materialNames) {
|
||||||
|
switch (type) {
|
||||||
|
case BLOCKS:
|
||||||
|
return getConfigSectionsBlocks(modName, materialNames);
|
||||||
|
case TOOLS:
|
||||||
|
return getConfigSectionsTools(modName, materialNames);
|
||||||
|
case ARMOR:
|
||||||
|
return getConfigSectionsArmor(modName, materialNames);
|
||||||
|
case UNKNOWN:
|
||||||
|
return getConfigSectionsUnknown(modName, materialNames);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private HashMap<String, ArrayList<String>> getConfigSectionsBlocks(String modName, HashMap<String, ArrayList<String>> materialNames) {
|
||||||
|
HashMap<String, ArrayList<String>> configSections = new HashMap<String, ArrayList<String>>();
|
||||||
|
|
||||||
|
// Go through all the materials and categorise them under a skill
|
||||||
|
for (String materialName : materialNames.get(modName)) {
|
||||||
|
String skillName = "UNIDENTIFIED";
|
||||||
|
if (materialName.contains("ORE")) {
|
||||||
|
skillName = "Mining";
|
||||||
|
}
|
||||||
|
else if (materialName.contains("LOG") || materialName.contains("LEAVES")) {
|
||||||
|
skillName = "Woodcutting";
|
||||||
|
}
|
||||||
|
else if (materialName.contains("GRASS") || materialName.contains("FLOWER") || materialName.contains("CROP")) {
|
||||||
|
skillName = "Herbalism";
|
||||||
|
}
|
||||||
|
else if (materialName.contains("DIRT") || materialName.contains("SAND")) {
|
||||||
|
skillName = "Excavation";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!configSections.containsKey(skillName)) {
|
||||||
|
configSections.put(skillName, new ArrayList<String>());
|
||||||
|
}
|
||||||
|
|
||||||
|
ArrayList<String> skillContents = configSections.get(skillName);
|
||||||
|
skillContents.add(" " + materialName + "|0:");
|
||||||
|
skillContents.add(" " + " " + "XP_Gain: 99");
|
||||||
|
skillContents.add(" " + " " + "Double_Drops_Enabled: true");
|
||||||
|
|
||||||
|
if (skillName.equals("Mining")) {
|
||||||
|
skillContents.add(" " + " " + "Smelting_XP_Gain: 9");
|
||||||
|
}
|
||||||
|
else if (skillName.equals("Woodcutting")) {
|
||||||
|
skillContents.add(" " + " " + "Is_Log: " + materialName.contains("LOG"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return configSections;
|
||||||
|
}
|
||||||
|
|
||||||
|
private HashMap<String, ArrayList<String>> getConfigSectionsTools(String modName, HashMap<String, ArrayList<String>> materialNames) {
|
||||||
|
HashMap<String, ArrayList<String>> configSections = new HashMap<String, ArrayList<String>>();
|
||||||
|
|
||||||
|
// Go through all the materials and categorise them under a tool type
|
||||||
|
for (String materialName : materialNames.get(modName)) {
|
||||||
|
String toolType = "UNIDENTIFIED";
|
||||||
|
if (materialName.contains("PICKAXE")) {
|
||||||
|
toolType = "Pickaxes";
|
||||||
|
}
|
||||||
|
else if (materialName.contains("AXE")) {
|
||||||
|
toolType = "Axes";
|
||||||
|
}
|
||||||
|
else if (materialName.contains("BOW")) {
|
||||||
|
toolType = "Bows";
|
||||||
|
}
|
||||||
|
else if (materialName.contains("HOE")) {
|
||||||
|
toolType = "Hoes";
|
||||||
|
}
|
||||||
|
else if (materialName.contains("SHOVEL") || materialName.contains("SPADE")) {
|
||||||
|
toolType = "Shovels";
|
||||||
|
}
|
||||||
|
else if (materialName.contains("SWORD")) {
|
||||||
|
toolType = "Swords";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!configSections.containsKey(toolType)) {
|
||||||
|
configSections.put(toolType, new ArrayList<String>());
|
||||||
|
}
|
||||||
|
|
||||||
|
ArrayList<String> skillContents = configSections.get(toolType);
|
||||||
|
skillContents.add(" " + materialName + ":");
|
||||||
|
skillContents.add(" " + " " + "XP_Modifier: 1.0");
|
||||||
|
skillContents.add(" " + " " + "Tier: 1");
|
||||||
|
skillContents.add(" " + " " + "Ability_Enabled: true");
|
||||||
|
addRepairableLines(materialName, skillContents);
|
||||||
|
}
|
||||||
|
|
||||||
|
return configSections;
|
||||||
|
}
|
||||||
|
|
||||||
|
private HashMap<String, ArrayList<String>> getConfigSectionsArmor(String modName, HashMap<String, ArrayList<String>> materialNames) {
|
||||||
|
HashMap<String, ArrayList<String>> configSections = new HashMap<String, ArrayList<String>>();
|
||||||
|
|
||||||
|
// Go through all the materials and categorise them under an armor type
|
||||||
|
for (String materialName : materialNames.get(modName)) {
|
||||||
|
String toolType = "UNIDENTIFIED";
|
||||||
|
if (materialName.contains("BOOT") || materialName.contains("SHOE")) {
|
||||||
|
toolType = "Boots";
|
||||||
|
}
|
||||||
|
else if (materialName.contains("CHESTPLATE") || materialName.contains("CHEST")) {
|
||||||
|
toolType = "Chestplates";
|
||||||
|
}
|
||||||
|
else if (materialName.contains("HELM") || materialName.contains("HAT")) {
|
||||||
|
toolType = "Helmets";
|
||||||
|
}
|
||||||
|
else if (materialName.contains("LEGGINGS") || materialName.contains("LEGS") || materialName.contains("PANTS")) {
|
||||||
|
toolType = "Leggings";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!configSections.containsKey(toolType)) {
|
||||||
|
configSections.put(toolType, new ArrayList<String>());
|
||||||
|
}
|
||||||
|
|
||||||
|
ArrayList<String> skillContents = configSections.get(toolType);
|
||||||
|
skillContents.add(" " + materialName + ":");
|
||||||
|
addRepairableLines(materialName, skillContents);
|
||||||
|
}
|
||||||
|
|
||||||
|
return configSections;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addRepairableLines(String materialName, ArrayList<String> skillContents) {
|
||||||
|
skillContents.add(" " + " " + "Repairable: true");
|
||||||
|
skillContents.add(" " + " " + "Repair_Material: REPAIR_MATERIAL_NAME");
|
||||||
|
skillContents.add(" " + " " + "Repair_Material_Data_Value: 0");
|
||||||
|
skillContents.add(" " + " " + "Repair_Material_Quantity: 9");
|
||||||
|
skillContents.add(" " + " " + "Repair_Material_Pretty_Name: Repair Item Name");
|
||||||
|
skillContents.add(" " + " " + "Repair_MinimumLevel: 0");
|
||||||
|
skillContents.add(" " + " " + "Repair_XpMultiplier: 1.0");
|
||||||
|
|
||||||
|
Material material = Material.matchMaterial(materialName);
|
||||||
|
short durability = (material == null) ? (short) 9999 : material.getMaxDurability();
|
||||||
|
skillContents.add(" " + " " + "Durability: " + ((durability > 0) ? durability : (short) 9999));
|
||||||
|
}
|
||||||
|
|
||||||
|
private HashMap<String, ArrayList<String>> getConfigSectionsUnknown(String modName, HashMap<String, ArrayList<String>> materialNames) {
|
||||||
|
HashMap<String, ArrayList<String>> configSections = new HashMap<String, ArrayList<String>>();
|
||||||
|
|
||||||
|
// Go through all the materials and print them
|
||||||
|
for (String materialName : materialNames.get(modName)) {
|
||||||
|
String configKey = "UNIDENTIFIED";
|
||||||
|
|
||||||
|
if (!configSections.containsKey(configKey)) {
|
||||||
|
configSections.put(configKey, new ArrayList<String>());
|
||||||
|
}
|
||||||
|
|
||||||
|
ArrayList<String> skillContents = configSections.get(configKey);
|
||||||
|
skillContents.add(" " + materialName);
|
||||||
|
}
|
||||||
|
|
||||||
|
return configSections;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@ package com.gmail.nossr50.commands;
|
|||||||
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
|
|
||||||
@@ -17,13 +18,13 @@ public class McabilityCommand extends ToggleCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyCommandAction() {
|
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.Ability." + (mcMMOPlayer.getAbilityUse() ? "Off" : "On")));
|
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.Ability." + (mcMMOPlayer.getAbilityUse() ? "Off" : "On")));
|
||||||
mcMMOPlayer.toggleAbilityUse();
|
mcMMOPlayer.toggleAbilityUse();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void sendSuccessMessage(CommandSender sender) {
|
protected void sendSuccessMessage(CommandSender sender, String playerName) {
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Ability.Toggle"));
|
sender.sendMessage(LocaleLoader.getString("Commands.Ability.Toggle", playerName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.commands.database;
|
package com.gmail.nossr50.commands;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -11,6 +11,7 @@ import org.bukkit.command.TabExecutor;
|
|||||||
import org.bukkit.util.StringUtil;
|
import org.bukkit.util.StringUtil;
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.commands.database.ConvertDatabaseCommand;
|
||||||
import com.gmail.nossr50.commands.experience.ConvertExperienceCommand;
|
import com.gmail.nossr50.commands.experience.ConvertExperienceCommand;
|
||||||
import com.gmail.nossr50.database.DatabaseManagerFactory;
|
import com.gmail.nossr50.database.DatabaseManagerFactory;
|
||||||
import com.gmail.nossr50.datatypes.database.DatabaseType;
|
import com.gmail.nossr50.datatypes.database.DatabaseType;
|
||||||
@@ -28,18 +29,12 @@ public class McconvertCommand implements TabExecutor {
|
|||||||
|
|
||||||
static {
|
static {
|
||||||
ArrayList<String> formulaTypes = new ArrayList<String>();
|
ArrayList<String> formulaTypes = new ArrayList<String>();
|
||||||
|
ArrayList<String> databaseTypes = new ArrayList<String>();
|
||||||
|
|
||||||
for (FormulaType type : FormulaType.values()) {
|
for (FormulaType type : FormulaType.values()) {
|
||||||
formulaTypes.add(type.toString());
|
formulaTypes.add(type.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
Collections.sort(formulaTypes);
|
|
||||||
FORMULA_TYPES = ImmutableList.copyOf(formulaTypes);
|
|
||||||
}
|
|
||||||
|
|
||||||
static {
|
|
||||||
ArrayList<String> databaseTypes = new ArrayList<String>();
|
|
||||||
|
|
||||||
for (DatabaseType type : DatabaseType.values()) {
|
for (DatabaseType type : DatabaseType.values()) {
|
||||||
databaseTypes.add(type.toString());
|
databaseTypes.add(type.toString());
|
||||||
}
|
}
|
||||||
@@ -51,8 +46,12 @@ public class McconvertCommand implements TabExecutor {
|
|||||||
databaseTypes.add(DatabaseManagerFactory.getCustomDatabaseManagerClass().getName());
|
databaseTypes.add(DatabaseManagerFactory.getCustomDatabaseManagerClass().getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Collections.sort(formulaTypes);
|
||||||
Collections.sort(databaseTypes);
|
Collections.sort(databaseTypes);
|
||||||
|
|
||||||
|
FORMULA_TYPES = ImmutableList.copyOf(formulaTypes);
|
||||||
DATABASE_TYPES = ImmutableList.copyOf(databaseTypes);
|
DATABASE_TYPES = ImmutableList.copyOf(databaseTypes);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -2,6 +2,7 @@ package com.gmail.nossr50.commands;
|
|||||||
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
|
|
||||||
@@ -17,13 +18,13 @@ public class McgodCommand extends ToggleCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyCommandAction() {
|
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.GodMode." + (mcMMOPlayer.getGodMode() ? "Disabled" : "Enabled")));
|
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.GodMode." + (mcMMOPlayer.getGodMode() ? "Disabled" : "Enabled")));
|
||||||
mcMMOPlayer.toggleGodMode();
|
mcMMOPlayer.toggleGodMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void sendSuccessMessage(CommandSender sender) {
|
protected void sendSuccessMessage(CommandSender sender, String playerName) {
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.GodMode.Success"));
|
sender.sendMessage(LocaleLoader.getString("Commands.GodMode.Toggle", playerName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import com.gmail.nossr50.mcMMO;
|
|||||||
import com.gmail.nossr50.commands.party.PartySubcommandType;
|
import com.gmail.nossr50.commands.party.PartySubcommandType;
|
||||||
import com.gmail.nossr50.config.Config;
|
import com.gmail.nossr50.config.Config;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.HolidayManager;
|
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
|
|
||||||
public class McmmoCommand implements CommandExecutor {
|
public class McmmoCommand implements CommandExecutor {
|
||||||
@@ -28,11 +27,14 @@ public class McmmoCommand implements CommandExecutor {
|
|||||||
|
|
||||||
if (Config.getInstance().getDonateMessageEnabled()) {
|
if (Config.getInstance().getDonateMessageEnabled()) {
|
||||||
sender.sendMessage(LocaleLoader.getString("MOTD.Donate"));
|
sender.sendMessage(LocaleLoader.getString("MOTD.Donate"));
|
||||||
sender.sendMessage(ChatColor.GOLD + " - " + ChatColor.GREEN + "gjmcferrin@gmail.com" + ChatColor.GOLD + " Paypal");
|
sender.sendMessage(ChatColor.GOLD + " - " + ChatColor.GREEN + "nossr50@gmail.com" + ChatColor.GOLD + " Paypal");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Permissions.showversion(sender)) {
|
||||||
sender.sendMessage(LocaleLoader.getString("MOTD.Version", mcMMO.p.getDescription().getVersion()));
|
sender.sendMessage(LocaleLoader.getString("MOTD.Version", mcMMO.p.getDescription().getVersion()));
|
||||||
HolidayManager.anniversaryCheck(sender);
|
}
|
||||||
|
|
||||||
|
mcMMO.getHolidayManager().anniversaryCheck(sender);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
@@ -43,9 +45,9 @@ public class McmmoCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.mcc.Header"));
|
sender.sendMessage(LocaleLoader.getString("Commands.mcc.Header"));
|
||||||
displayPartyCommands(sender);
|
displayGeneralCommands(sender);
|
||||||
displayOtherCommands(sender);
|
displayOtherCommands(sender);
|
||||||
|
displayPartyCommands(sender);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@@ -54,55 +56,57 @@ public class McmmoCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void displayPartyCommands(CommandSender sender) {
|
private void displayGeneralCommands(CommandSender sender) {
|
||||||
if (Permissions.party(sender)) {
|
sender.sendMessage(ChatColor.DARK_AQUA + " /mcstats " + LocaleLoader.getString("Commands.Stats"));
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Party.Commands"));
|
sender.sendMessage(ChatColor.DARK_AQUA + " /<skill>" + LocaleLoader.getString("Commands.SkillInfo"));
|
||||||
sender.sendMessage(" /party create <" + LocaleLoader.getString("Commands.Usage.PartyName") + "> " + LocaleLoader.getString("Commands.Party1"));
|
sender.sendMessage(ChatColor.DARK_AQUA + " /mctop " + LocaleLoader.getString("Commands.Leaderboards"));
|
||||||
sender.sendMessage(" /party join <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party2"));
|
|
||||||
sender.sendMessage(" /party quit " + LocaleLoader.getString("Commands.Party.Quit"));
|
|
||||||
|
|
||||||
if (Permissions.partyChat(sender)) {
|
if (Permissions.inspect(sender)) {
|
||||||
sender.sendMessage(" /party chat " + LocaleLoader.getString("Commands.Party.Toggle"));
|
sender.sendMessage(ChatColor.DARK_AQUA + " /inspect " + LocaleLoader.getString("Commands.Inspect"));
|
||||||
}
|
}
|
||||||
|
|
||||||
sender.sendMessage(" /party invite <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party.Invite"));
|
if (Permissions.mcability(sender)) {
|
||||||
sender.sendMessage(" /party accept " + LocaleLoader.getString("Commands.Party.Accept"));
|
sender.sendMessage(ChatColor.DARK_AQUA + " /mcability " + LocaleLoader.getString("Commands.ToggleAbility"));
|
||||||
|
|
||||||
if (Permissions.partySubcommand(sender, PartySubcommandType.TELEPORT)) {
|
|
||||||
sender.sendMessage(" /party teleport " + LocaleLoader.getString("Commands.Party.Teleport"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void displayOtherCommands(CommandSender sender) {
|
private void displayOtherCommands(CommandSender sender) {
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Other"));
|
sender.sendMessage(LocaleLoader.getString("Commands.Other"));
|
||||||
sender.sendMessage(" /mcstats " + LocaleLoader.getString("Commands.Stats"));
|
|
||||||
sender.sendMessage(" /mctop " + LocaleLoader.getString("Commands.Leaderboards"));
|
|
||||||
|
|
||||||
if (Permissions.skillreset(sender)) {
|
if (Permissions.skillreset(sender)) {
|
||||||
sender.sendMessage(" /skillreset <skill|all> " + LocaleLoader.getString("Commands.Reset"));
|
sender.sendMessage(ChatColor.DARK_AQUA + " /skillreset <skill|all> " + LocaleLoader.getString("Commands.Reset"));
|
||||||
}
|
|
||||||
|
|
||||||
if (Permissions.mcability(sender)) {
|
|
||||||
sender.sendMessage(" /mcability " + LocaleLoader.getString("Commands.ToggleAbility"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Permissions.adminChat(sender)) {
|
|
||||||
sender.sendMessage(" /adminchat " + LocaleLoader.getString("Commands.AdminToggle"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Permissions.inspect(sender)) {
|
|
||||||
sender.sendMessage(" /inspect " + LocaleLoader.getString("Commands.Inspect"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Permissions.mmoedit(sender)) {
|
if (Permissions.mmoedit(sender)) {
|
||||||
sender.sendMessage(" /mmoedit " + LocaleLoader.getString("Commands.mmoedit"));
|
sender.sendMessage(ChatColor.DARK_AQUA + " /mmoedit " + LocaleLoader.getString("Commands.mmoedit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Permissions.adminChat(sender)) {
|
||||||
|
sender.sendMessage(ChatColor.DARK_AQUA + " /adminchat " + LocaleLoader.getString("Commands.AdminToggle"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Permissions.mcgod(sender)) {
|
if (Permissions.mcgod(sender)) {
|
||||||
sender.sendMessage(" /mcgod " + LocaleLoader.getString("Commands.mcgod"));
|
sender.sendMessage(ChatColor.DARK_AQUA + " /mcgod " + LocaleLoader.getString("Commands.mcgod"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sender.sendMessage(" /<skill>" + LocaleLoader.getString("Commands.SkillInfo"));
|
private void displayPartyCommands(CommandSender sender) {
|
||||||
|
if (Permissions.party(sender)) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Party.Commands"));
|
||||||
|
sender.sendMessage(ChatColor.DARK_AQUA + " /party create <" + LocaleLoader.getString("Commands.Usage.PartyName") + "> " + LocaleLoader.getString("Commands.Party1"));
|
||||||
|
sender.sendMessage(ChatColor.DARK_AQUA + " /party join <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party2"));
|
||||||
|
sender.sendMessage(ChatColor.DARK_AQUA + " /party quit " + LocaleLoader.getString("Commands.Party.Quit"));
|
||||||
|
|
||||||
|
if (Permissions.partyChat(sender)) {
|
||||||
|
sender.sendMessage(ChatColor.DARK_AQUA + " /party chat " + LocaleLoader.getString("Commands.Party.Toggle"));
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.sendMessage(ChatColor.DARK_AQUA + " /party invite <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party.Invite"));
|
||||||
|
sender.sendMessage(ChatColor.DARK_AQUA + " /party accept " + LocaleLoader.getString("Commands.Party.Accept"));
|
||||||
|
|
||||||
|
if (Permissions.partySubcommand(sender, PartySubcommandType.TELEPORT)) {
|
||||||
|
sender.sendMessage(ChatColor.DARK_AQUA + " /party teleport <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party.Teleport"));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.gmail.nossr50.commands;
|
|||||||
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
|
|
||||||
@@ -17,17 +18,17 @@ public class McrefreshCommand extends ToggleCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyCommandAction() {
|
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
||||||
mcMMOPlayer.setRecentlyHurt(0);
|
mcMMOPlayer.setRecentlyHurt(0);
|
||||||
mcMMOPlayer.getProfile().resetCooldowns();
|
mcMMOPlayer.resetCooldowns();
|
||||||
mcMMOPlayer.resetToolPrepMode();
|
mcMMOPlayer.resetToolPrepMode();
|
||||||
mcMMOPlayer.resetAbilityMode();
|
mcMMOPlayer.resetAbilityMode();
|
||||||
|
|
||||||
player.sendMessage(LocaleLoader.getString("Ability.Generic.Refresh"));
|
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Ability.Generic.Refresh"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void sendSuccessMessage(CommandSender sender) {
|
protected void sendSuccessMessage(CommandSender sender, String playerName) {
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.mcrefresh.Success", player.getName()));
|
sender.sendMessage(LocaleLoader.getString("Commands.mcrefresh.Success", playerName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.gmail.nossr50.commands;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabExecutor;
|
import org.bukkit.command.TabExecutor;
|
||||||
@@ -11,6 +12,7 @@ import com.gmail.nossr50.config.Config;
|
|||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||||
import com.gmail.nossr50.util.scoreboards.ScoreboardManager;
|
import com.gmail.nossr50.util.scoreboards.ScoreboardManager;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
||||||
public class McscoreboardCommand implements TabExecutor {
|
public class McscoreboardCommand implements TabExecutor {
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.util.StringUtil;
|
import org.bukkit.util.StringUtil;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.MobHealthbarType;
|
import com.gmail.nossr50.datatypes.MobHealthbarType;
|
||||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
||||||
public class MobhealthCommand implements TabExecutor {
|
public class MobhealthCommand implements TabExecutor {
|
||||||
@@ -37,13 +37,15 @@ public class MobhealthCommand implements TabExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!CommandUtils.hasPlayerDataKey(sender)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 1:
|
case 1:
|
||||||
PlayerProfile playerProfile = UserManager.getPlayer((Player) sender).getProfile();
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
MobHealthbarType type = MobHealthbarType.valueOf(args[0].toUpperCase().trim());
|
MobHealthbarType type = MobHealthbarType.valueOf(args[0].toUpperCase().trim());
|
||||||
playerProfile.setMobHealthbarType(type);
|
UserManager.getPlayer((Player) sender).getProfile().setMobHealthbarType(type);
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Healthbars.Changed." + type.name()));
|
sender.sendMessage(LocaleLoader.getString("Commands.Healthbars.Changed." + type.name()));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,25 +2,19 @@ package com.gmail.nossr50.commands;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabExecutor;
|
import org.bukkit.command.TabExecutor;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.util.StringUtil;
|
import org.bukkit.util.StringUtil;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.util.Misc;
|
|
||||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
||||||
public abstract class ToggleCommand implements TabExecutor {
|
public abstract class ToggleCommand implements TabExecutor {
|
||||||
protected McMMOPlayer mcMMOPlayer;
|
|
||||||
protected Player player;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
@@ -34,10 +28,11 @@ public abstract class ToggleCommand implements TabExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
player = (Player) sender;
|
if (!CommandUtils.hasPlayerDataKey(sender)) {
|
||||||
mcMMOPlayer = UserManager.getPlayer(player);
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
applyCommandAction();
|
applyCommandAction(UserManager.getPlayer(sender.getName()));
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
@@ -46,21 +41,19 @@ public abstract class ToggleCommand implements TabExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
String playerName = Misc.getMatchedPlayerName(args[0]);
|
String playerName = CommandUtils.getMatchedPlayerName(args[0]);
|
||||||
mcMMOPlayer = UserManager.getPlayer(playerName);
|
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(playerName);
|
||||||
|
|
||||||
if (!CommandUtils.checkPlayerExistence(sender, playerName, mcMMOPlayer)) {
|
if (!CommandUtils.checkPlayerExistence(sender, playerName, mcMMOPlayer)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
player = mcMMOPlayer.getPlayer();
|
if (CommandUtils.isOffline(sender, mcMMOPlayer.getPlayer())) {
|
||||||
|
|
||||||
if (CommandUtils.isOffline(sender, player)) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
applyCommandAction();
|
applyCommandAction(mcMMOPlayer);
|
||||||
sendSuccessMessage(sender);
|
sendSuccessMessage(sender, playerName);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -72,7 +65,7 @@ public abstract class ToggleCommand implements TabExecutor {
|
|||||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 1:
|
case 1:
|
||||||
Set<String> playerNames = UserManager.getPlayerNames();
|
List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
|
||||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<String>(playerNames.size()));
|
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<String>(playerNames.size()));
|
||||||
default:
|
default:
|
||||||
return ImmutableList.of();
|
return ImmutableList.of();
|
||||||
@@ -81,6 +74,6 @@ public abstract class ToggleCommand implements TabExecutor {
|
|||||||
|
|
||||||
protected abstract boolean hasOtherPermission(CommandSender sender);
|
protected abstract boolean hasOtherPermission(CommandSender sender);
|
||||||
protected abstract boolean hasSelfPermission(CommandSender sender);
|
protected abstract boolean hasSelfPermission(CommandSender sender);
|
||||||
protected abstract void applyCommandAction();
|
protected abstract void applyCommandAction(McMMOPlayer mcMMOPlayer);
|
||||||
protected abstract void sendSuccessMessage(CommandSender sender);
|
protected abstract void sendSuccessMessage(CommandSender sender, String playerName);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,11 +18,7 @@ import com.gmail.nossr50.util.commands.CommandUtils;
|
|||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
||||||
public class XprateCommand implements TabExecutor {
|
public class XprateCommand implements TabExecutor {
|
||||||
private double originalRate;
|
private final double ORIGINAL_XP_RATE = ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier();
|
||||||
|
|
||||||
public XprateCommand() {
|
|
||||||
originalRate = ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
@@ -42,7 +38,7 @@ public class XprateCommand implements TabExecutor {
|
|||||||
mcMMO.p.toggleXpEventEnabled();
|
mcMMO.p.toggleXpEventEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
ExperienceConfig.getInstance().setExperienceGainsGlobalMultiplier(originalRate);
|
ExperienceConfig.getInstance().setExperienceGainsGlobalMultiplier(ORIGINAL_XP_RATE);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
|
|||||||
@@ -12,7 +12,9 @@ import org.bukkit.util.StringUtil;
|
|||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.chat.ChatManager;
|
import com.gmail.nossr50.chat.ChatManager;
|
||||||
import com.gmail.nossr50.chat.ChatManagerFactory;
|
import com.gmail.nossr50.chat.ChatManagerFactory;
|
||||||
|
import com.gmail.nossr50.config.Config;
|
||||||
import com.gmail.nossr50.datatypes.chat.ChatMode;
|
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.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||||
@@ -21,9 +23,8 @@ import com.gmail.nossr50.util.player.UserManager;
|
|||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
||||||
public abstract class ChatCommand implements TabExecutor {
|
public abstract class ChatCommand implements TabExecutor {
|
||||||
protected ChatMode chatMode;
|
private ChatMode chatMode;
|
||||||
protected ChatManager chatManager;
|
protected ChatManager chatManager;
|
||||||
private McMMOPlayer mcMMOPlayer;
|
|
||||||
|
|
||||||
public ChatCommand(ChatMode chatMode) {
|
public ChatCommand(ChatMode chatMode) {
|
||||||
this.chatMode = chatMode;
|
this.chatMode = chatMode;
|
||||||
@@ -32,32 +33,40 @@ public abstract class ChatCommand implements TabExecutor {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
|
McMMOPlayer mcMMOPlayer;
|
||||||
|
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 0:
|
case 0:
|
||||||
if (CommandUtils.noConsoleUsage(sender)) {
|
if (CommandUtils.noConsoleUsage(sender)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
mcMMOPlayer = UserManager.getPlayer((Player) sender);
|
if (!CommandUtils.hasPlayerDataKey(sender)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (chatMode.isEnabled(mcMMOPlayer)) {
|
mcMMOPlayer = UserManager.getPlayer(sender.getName());
|
||||||
disableChatMode(sender);
|
|
||||||
|
if (mcMMOPlayer.isChatEnabled(chatMode)) {
|
||||||
|
disableChatMode(mcMMOPlayer, sender);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
enableChatMode(sender);
|
enableChatMode(mcMMOPlayer, sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
|
if (!CommandUtils.hasPlayerDataKey(sender)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (CommandUtils.shouldEnableToggle(args[0])) {
|
if (CommandUtils.shouldEnableToggle(args[0])) {
|
||||||
if (CommandUtils.noConsoleUsage(sender)) {
|
if (CommandUtils.noConsoleUsage(sender)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
mcMMOPlayer = UserManager.getPlayer((Player) sender);
|
enableChatMode(UserManager.getPlayer(sender.getName()), sender);
|
||||||
|
|
||||||
enableChatMode(sender);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -66,9 +75,7 @@ public abstract class ChatCommand implements TabExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
mcMMOPlayer = UserManager.getPlayer((Player) sender);
|
disableChatMode(UserManager.getPlayer(sender.getName()), sender);
|
||||||
|
|
||||||
disableChatMode(sender);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,23 +115,28 @@ public abstract class ChatCommand implements TabExecutor {
|
|||||||
|
|
||||||
protected abstract void handleChatSending(CommandSender sender, String[] args);
|
protected abstract void handleChatSending(CommandSender sender, String[] args);
|
||||||
|
|
||||||
private void enableChatMode(CommandSender sender) {
|
private void enableChatMode(McMMOPlayer mcMMOPlayer, CommandSender sender) {
|
||||||
if (chatMode == ChatMode.PARTY && mcMMOPlayer.getParty() == null) {
|
if (chatMode == ChatMode.PARTY && mcMMOPlayer.getParty() == null) {
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Party.None"));
|
sender.sendMessage(LocaleLoader.getString("Commands.Party.None"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
chatMode.enable(mcMMOPlayer);
|
if (chatMode == ChatMode.PARTY && (mcMMOPlayer.getParty().getLevel() < Config.getInstance().getPartyFeatureUnlockLevel(PartyFeature.CHAT))) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Party.Feature.Disabled.1"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
mcMMOPlayer.enableChat(chatMode);
|
||||||
sender.sendMessage(chatMode.getEnabledMessage());
|
sender.sendMessage(chatMode.getEnabledMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void disableChatMode(CommandSender sender) {
|
private void disableChatMode(McMMOPlayer mcMMOPlayer, CommandSender sender) {
|
||||||
if (chatMode == ChatMode.PARTY && mcMMOPlayer.getParty() == null) {
|
if (chatMode == ChatMode.PARTY && mcMMOPlayer.getParty() == null) {
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Party.None"));
|
sender.sendMessage(LocaleLoader.getString("Commands.Party.None"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
chatMode.disable(mcMMOPlayer);
|
mcMMOPlayer.disableChat(chatMode);
|
||||||
sender.sendMessage(chatMode.getDisabledMessage());
|
sender.sendMessage(chatMode.getDisabledMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
30
src/main/java/com/gmail/nossr50/commands/chat/McChatSpy.java
Normal file
30
src/main/java/com/gmail/nossr50/commands/chat/McChatSpy.java
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
package com.gmail.nossr50.commands.chat;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.commands.ToggleCommand;
|
||||||
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
|
import com.gmail.nossr50.util.Permissions;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
|
public class McChatSpy extends ToggleCommand {
|
||||||
|
@Override
|
||||||
|
protected boolean hasOtherPermission(CommandSender sender) {
|
||||||
|
return Permissions.adminChatSpyOthers(sender);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean hasSelfPermission(CommandSender sender) {
|
||||||
|
return Permissions.adminChatSpy(sender);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
||||||
|
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.AdminChatSpy." + (mcMMOPlayer.isPartyChatSpying() ? "Disabled" : "Enabled")));
|
||||||
|
mcMMOPlayer.togglePartyChatSpying();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void sendSuccessMessage(CommandSender sender, String playerName) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.AdminChatSpy.Toggle", playerName));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,8 +4,10 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.gmail.nossr50.chat.PartyChatManager;
|
import com.gmail.nossr50.chat.PartyChatManager;
|
||||||
|
import com.gmail.nossr50.config.Config;
|
||||||
import com.gmail.nossr50.datatypes.chat.ChatMode;
|
import com.gmail.nossr50.datatypes.chat.ChatMode;
|
||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
|
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.party.PartyManager;
|
import com.gmail.nossr50.party.PartyManager;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
@@ -28,6 +30,11 @@ public class PartyChatCommand extends ChatCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (party.getLevel() < Config.getInstance().getPartyFeatureUnlockLevel(PartyFeature.CHAT)) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Party.Feature.Disabled.1"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
message = buildChatMessage(args, 0);
|
message = buildChatMessage(args, 0);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.gmail.nossr50.datatypes.database.DatabaseType;
|
|||||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.runnables.database.DatabaseConversionTask;
|
import com.gmail.nossr50.runnables.database.DatabaseConversionTask;
|
||||||
|
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
public class ConvertDatabaseCommand implements CommandExecutor {
|
public class ConvertDatabaseCommand implements CommandExecutor {
|
||||||
@@ -55,13 +56,13 @@ public class ConvertDatabaseCommand implements CommandExecutor {
|
|||||||
UserManager.clearAll();
|
UserManager.clearAll();
|
||||||
|
|
||||||
for (Player player : mcMMO.p.getServer().getOnlinePlayers()) {
|
for (Player player : mcMMO.p.getServer().getOnlinePlayers()) {
|
||||||
PlayerProfile profile = oldDatabase.loadPlayerProfile(player.getName(), false);
|
PlayerProfile profile = oldDatabase.loadPlayerProfile(player.getUniqueId());
|
||||||
|
|
||||||
if (profile.isLoaded()) {
|
if (profile.isLoaded()) {
|
||||||
mcMMO.getDatabaseManager().saveUser(profile);
|
mcMMO.getDatabaseManager().saveUser(profile);
|
||||||
}
|
}
|
||||||
|
|
||||||
UserManager.addUser(player);
|
new PlayerProfileLoadingTask(player).runTaskLaterAsynchronously(mcMMO.p, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading
|
||||||
}
|
}
|
||||||
|
|
||||||
new DatabaseConversionTask(oldDatabase, sender, previousType.toString(), newType.toString()).runTaskAsynchronously(mcMMO.p);
|
new DatabaseConversionTask(oldDatabase, sender, previousType.toString(), newType.toString()).runTaskAsynchronously(mcMMO.p);
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package com.gmail.nossr50.commands.database;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@@ -11,7 +10,6 @@ import org.bukkit.util.StringUtil;
|
|||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.Misc;
|
|
||||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
@@ -22,9 +20,9 @@ public class McremoveCommand implements TabExecutor {
|
|||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 1:
|
case 1:
|
||||||
String playerName = Misc.getMatchedPlayerName(args[0]);
|
String playerName = CommandUtils.getMatchedPlayerName(args[0]);
|
||||||
|
|
||||||
if (UserManager.getPlayer(playerName, true) == null && CommandUtils.unloadedProfile(sender, mcMMO.getDatabaseManager().loadPlayerProfile(playerName, false))) {
|
if (UserManager.getOfflinePlayer(playerName) == null && CommandUtils.unloadedProfile(sender, mcMMO.getDatabaseManager().loadPlayerProfile(playerName, false))) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -46,7 +44,7 @@ public class McremoveCommand implements TabExecutor {
|
|||||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 1:
|
case 1:
|
||||||
Set<String> playerNames = UserManager.getPlayerNames();
|
List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
|
||||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<String>(playerNames.size()));
|
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<String>(playerNames.size()));
|
||||||
default:
|
default:
|
||||||
return ImmutableList.of();
|
return ImmutableList.of();
|
||||||
|
|||||||
@@ -15,10 +15,8 @@ import com.google.common.collect.ImmutableList;
|
|||||||
public class MmoshowdbCommand implements TabExecutor {
|
public class MmoshowdbCommand implements TabExecutor {
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
if (args.length != 0) {
|
switch (args.length) {
|
||||||
return false;
|
case 0:
|
||||||
}
|
|
||||||
|
|
||||||
Class<?> clazz = DatabaseManagerFactory.getCustomDatabaseManagerClass();
|
Class<?> clazz = DatabaseManagerFactory.getCustomDatabaseManagerClass();
|
||||||
|
|
||||||
if (clazz != null) {
|
if (clazz != null) {
|
||||||
@@ -28,6 +26,10 @@ public class MmoshowdbCommand implements TabExecutor {
|
|||||||
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.mmoshowdb", (Config.getInstance().getUseMySQL() ? "sql" : "flatfile")));
|
sender.sendMessage(LocaleLoader.getString("Commands.mmoshowdb", (Config.getInstance().getUseMySQL() ? "sql" : "flatfile")));
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
package com.gmail.nossr50.commands.experience;
|
package com.gmail.nossr50.commands.experience;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.skills.PrimarySkill;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||||
|
import com.gmail.nossr50.datatypes.skills.XPGainReason;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.EventUtils;
|
import com.gmail.nossr50.util.EventUtils;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
@@ -19,24 +22,25 @@ public class AddlevelsCommand extends ExperienceCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleCommand(SkillType skill) {
|
protected void handleCommand(Player player, PlayerProfile profile, PrimarySkill skill, int value) {
|
||||||
float xpRemoved = profile.getSkillXpLevelRaw(skill);
|
float xpRemoved = profile.getSkillXpLevelRaw(skill);
|
||||||
profile.addLevels(skill, value);
|
profile.addLevels(skill, value);
|
||||||
|
|
||||||
if (player == null) {
|
if (player == null) {
|
||||||
|
profile.scheduleAsyncSave();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
EventUtils.handleLevelChangeEvent(player, skill, value, xpRemoved, true);
|
EventUtils.handleLevelChangeEvent(player, skill, value, xpRemoved, true, XPGainReason.COMMAND);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handlePlayerMessageAll() {
|
protected void handlePlayerMessageAll(Player player, int value) {
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.1", value));
|
player.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.1", value));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handlePlayerMessageSkill() {
|
protected void handlePlayerMessageSkill(Player player, int value, PrimarySkill skill) {
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.1", value, skill.getName()));
|
player.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.1", value, skill.getName()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,14 @@
|
|||||||
package com.gmail.nossr50.commands.experience;
|
package com.gmail.nossr50.commands.experience;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.skills.PrimarySkill;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||||
|
import com.gmail.nossr50.datatypes.skills.XPGainReason;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
public class AddxpCommand extends ExperienceCommand {
|
public class AddxpCommand extends ExperienceCommand {
|
||||||
@Override
|
@Override
|
||||||
@@ -18,22 +22,23 @@ public class AddxpCommand extends ExperienceCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleCommand(SkillType skill) {
|
protected void handleCommand(Player player, PlayerProfile profile, PrimarySkill skill, int value) {
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
mcMMOPlayer.applyXpGain(skill, value);
|
UserManager.getPlayer(player).applyXpGain(skill, value, XPGainReason.COMMAND);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
profile.addExperience(skill, value);
|
profile.addXp(skill, value);
|
||||||
|
profile.scheduleAsyncSave();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handlePlayerMessageAll() {
|
protected void handlePlayerMessageAll(Player player, int value) {
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.addxp.AwardAll", value));
|
player.sendMessage(LocaleLoader.getString("Commands.addxp.AwardAll", value));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handlePlayerMessageSkill() {
|
protected void handlePlayerMessageSkill(Player player, int value, PrimarySkill skill) {
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.addxp.AwardSkill", value, skill.getName()));
|
player.sendMessage(LocaleLoader.getString("Commands.addxp.AwardSkill", value, skill.getName()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import com.gmail.nossr50.mcMMO;
|
|||||||
import com.gmail.nossr50.datatypes.experience.FormulaType;
|
import com.gmail.nossr50.datatypes.experience.FormulaType;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.runnables.database.FormulaConversionTask;
|
import com.gmail.nossr50.runnables.database.FormulaConversionTask;
|
||||||
|
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
public class ConvertExperienceCommand implements CommandExecutor {
|
public class ConvertExperienceCommand implements CommandExecutor {
|
||||||
@@ -37,7 +38,7 @@ public class ConvertExperienceCommand implements CommandExecutor {
|
|||||||
new FormulaConversionTask(sender, newType).runTaskLater(mcMMO.p, 1);
|
new FormulaConversionTask(sender, newType).runTaskLater(mcMMO.p, 1);
|
||||||
|
|
||||||
for (Player player : mcMMO.p.getServer().getOnlinePlayers()) {
|
for (Player player : mcMMO.p.getServer().getOnlinePlayers()) {
|
||||||
UserManager.addUser(player);
|
new PlayerProfileLoadingTask(player).runTaskLaterAsynchronously(mcMMO.p, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ package com.gmail.nossr50.commands.experience;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.skills.PrimarySkill;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabExecutor;
|
import org.bukkit.command.TabExecutor;
|
||||||
@@ -13,25 +15,16 @@ import org.bukkit.util.StringUtil;
|
|||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.Misc;
|
|
||||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
||||||
public abstract class ExperienceCommand implements TabExecutor {
|
public abstract class ExperienceCommand implements TabExecutor {
|
||||||
protected McMMOPlayer mcMMOPlayer;
|
|
||||||
protected Player player;
|
|
||||||
protected PlayerProfile profile;
|
|
||||||
|
|
||||||
protected boolean allSkills;
|
|
||||||
protected SkillType skill;
|
|
||||||
protected int value;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
|
PrimarySkill skill;
|
||||||
|
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 2:
|
case 2:
|
||||||
if (CommandUtils.noConsoleUsage(sender)) {
|
if (CommandUtils.noConsoleUsage(sender)) {
|
||||||
@@ -47,12 +40,19 @@ public abstract class ExperienceCommand implements TabExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
player = (Player) sender;
|
skill = PrimarySkill.getSkill(args[0]);
|
||||||
mcMMOPlayer = UserManager.getPlayer(player);
|
|
||||||
profile = mcMMOPlayer.getProfile();
|
|
||||||
|
|
||||||
editValues();
|
if (args[1].equalsIgnoreCase("all")) {
|
||||||
cleanUp();
|
skill = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (skill != null && skill.isChildSkill())
|
||||||
|
{
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Skill.ChildSkill"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
editValues((Player) sender, UserManager.getPlayer(sender.getName()).getProfile(), skill, Integer.parseInt(args[1]));
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
@@ -65,28 +65,43 @@ public abstract class ExperienceCommand implements TabExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
String playerName = Misc.getMatchedPlayerName(args[0]);
|
skill = PrimarySkill.getSkill(args[1]);
|
||||||
mcMMOPlayer = UserManager.getPlayer(playerName, true);
|
|
||||||
|
if (args[1].equalsIgnoreCase("all")) {
|
||||||
|
skill = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (skill != null && skill.isChildSkill())
|
||||||
|
{
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Skill.ChildSkill"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
int value = Integer.parseInt(args[2]);
|
||||||
|
|
||||||
|
String playerName = CommandUtils.getMatchedPlayerName(args[0]);
|
||||||
|
McMMOPlayer mcMMOPlayer = UserManager.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 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) {
|
if (mcMMOPlayer == null) {
|
||||||
profile = mcMMO.getDatabaseManager().loadPlayerProfile(playerName, false);
|
UUID uuid = null;
|
||||||
|
OfflinePlayer player = mcMMO.p.getServer().getOfflinePlayer(playerName);
|
||||||
|
if (player != null) {
|
||||||
|
uuid = player.getUniqueId();
|
||||||
|
}
|
||||||
|
PlayerProfile profile = mcMMO.getDatabaseManager().loadPlayerProfile(playerName, uuid, false);
|
||||||
|
|
||||||
if (CommandUtils.unloadedProfile(sender, profile)) {
|
if (CommandUtils.unloadedProfile(sender, profile)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
editValues();
|
editValues(null, profile, skill, value);
|
||||||
profile.save(); // Since this is a temporary profile, we save it here.
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
profile = mcMMOPlayer.getProfile();
|
editValues(mcMMOPlayer.getPlayer(), mcMMOPlayer.getProfile(), skill, value);
|
||||||
player = mcMMOPlayer.getPlayer();
|
|
||||||
editValues();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
handleSenderMessage(sender, playerName);
|
handleSenderMessage(sender, playerName, skill);
|
||||||
cleanUp();
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -98,10 +113,10 @@ public abstract class ExperienceCommand implements TabExecutor {
|
|||||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 1:
|
case 1:
|
||||||
Set<String> playerNames = UserManager.getPlayerNames();
|
List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
|
||||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<String>(playerNames.size()));
|
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<String>(playerNames.size()));
|
||||||
case 2:
|
case 2:
|
||||||
return StringUtil.copyPartialMatches(args[1], SkillType.SKILL_NAMES, new ArrayList<String>(SkillType.SKILL_NAMES.size()));
|
return StringUtil.copyPartialMatches(args[1], PrimarySkill.SKILL_NAMES, new ArrayList<String>(PrimarySkill.SKILL_NAMES.size()));
|
||||||
default:
|
default:
|
||||||
return ImmutableList.of();
|
return ImmutableList.of();
|
||||||
}
|
}
|
||||||
@@ -109,42 +124,16 @@ public abstract class ExperienceCommand implements TabExecutor {
|
|||||||
|
|
||||||
protected abstract boolean permissionsCheckSelf(CommandSender sender);
|
protected abstract boolean permissionsCheckSelf(CommandSender sender);
|
||||||
protected abstract boolean permissionsCheckOthers(CommandSender sender);
|
protected abstract boolean permissionsCheckOthers(CommandSender sender);
|
||||||
protected abstract void handleCommand(SkillType skill);
|
protected abstract void handleCommand(Player player, PlayerProfile profile, PrimarySkill skill, int value);
|
||||||
protected abstract void handlePlayerMessageAll();
|
protected abstract void handlePlayerMessageAll(Player player, int value);
|
||||||
protected abstract void handlePlayerMessageSkill();
|
protected abstract void handlePlayerMessageSkill(Player player, int value, PrimarySkill skill);
|
||||||
|
|
||||||
private boolean validateArguments(CommandSender sender, String skillName, String value) {
|
private boolean validateArguments(CommandSender sender, String skillName, String value) {
|
||||||
if (isInvalidInteger(sender, value) || isInvalidSkill(sender, skillName)) {
|
return !(CommandUtils.isInvalidInteger(sender, value) || (!skillName.equalsIgnoreCase("all") && CommandUtils.isInvalidSkill(sender, skillName)));
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
protected static void handleSenderMessage(CommandSender sender, String playerName, PrimarySkill skill) {
|
||||||
}
|
if (skill == null) {
|
||||||
|
|
||||||
private boolean isInvalidInteger(CommandSender sender, String value) {
|
|
||||||
if (CommandUtils.isInvalidInteger(sender, value)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.value = Integer.parseInt(value);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected boolean isInvalidSkill(CommandSender sender, String skillName) {
|
|
||||||
if (skillName.equalsIgnoreCase("all")) {
|
|
||||||
allSkills = true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else if (CommandUtils.isInvalidSkill(sender, skillName)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
skill = SkillType.getSkill(skillName);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void handleSenderMessage(CommandSender sender, String playerName) {
|
|
||||||
if (allSkills) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.2", playerName));
|
sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.2", playerName));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -152,27 +141,22 @@ public abstract class ExperienceCommand implements TabExecutor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void editValues() {
|
protected void editValues(Player player, PlayerProfile profile, PrimarySkill skill, int value) {
|
||||||
if (allSkills) {
|
if (skill == null) {
|
||||||
for (SkillType skillType : SkillType.values()) {
|
for (PrimarySkill primarySkill : PrimarySkill.NON_CHILD_SKILLS) {
|
||||||
handleCommand(skillType);
|
handleCommand(player, profile, primarySkill, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
handlePlayerMessageAll();
|
handlePlayerMessageAll(player, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
handleCommand(skill);
|
handleCommand(player, profile, skill, value);
|
||||||
|
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
handlePlayerMessageSkill();
|
handlePlayerMessageSkill(player, value, skill);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void cleanUp() {
|
|
||||||
allSkills = false;
|
|
||||||
player = null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
package com.gmail.nossr50.commands.experience;
|
package com.gmail.nossr50.commands.experience;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.skills.PrimarySkill;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||||
|
import com.gmail.nossr50.datatypes.skills.XPGainReason;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.EventUtils;
|
import com.gmail.nossr50.util.EventUtils;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
@@ -19,26 +22,31 @@ public class MmoeditCommand extends ExperienceCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleCommand(SkillType skill) {
|
protected void handleCommand(Player player, PlayerProfile profile, PrimarySkill skill, int value) {
|
||||||
int skillLevel = profile.getSkillLevel(skill);
|
int skillLevel = profile.getSkillLevel(skill);
|
||||||
float xpRemoved = profile.getSkillXpLevelRaw(skill);
|
float xpRemoved = profile.getSkillXpLevelRaw(skill);
|
||||||
|
|
||||||
profile.modifySkill(skill, value);
|
profile.modifySkill(skill, value);
|
||||||
|
|
||||||
if (player == null || value == skillLevel) {
|
if (player == null) {
|
||||||
|
profile.scheduleAsyncSave();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
EventUtils.handleLevelChangeEvent(player, skill, value, xpRemoved, value > skillLevel);
|
if (value == skillLevel) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
EventUtils.handleLevelChangeEvent(player, skill, value, xpRemoved, value > skillLevel, XPGainReason.COMMAND);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handlePlayerMessageAll() {
|
protected void handlePlayerMessageAll(Player player, int value) {
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.mmoedit.AllSkills.1", value));
|
player.sendMessage(LocaleLoader.getString("Commands.mmoedit.AllSkills.1", value));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handlePlayerMessageSkill() {
|
protected void handlePlayerMessageSkill(Player player, int value, PrimarySkill skill) {
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.mmoedit.Modified.1", skill.getName(), value));
|
player.sendMessage(LocaleLoader.getString("Commands.mmoedit.Modified.1", skill.getName(), value));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,83 +1,101 @@
|
|||||||
package com.gmail.nossr50.commands.experience;
|
package com.gmail.nossr50.commands.experience;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.skills.PrimarySkill;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.command.TabExecutor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.util.StringUtil;
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||||
|
import com.gmail.nossr50.datatypes.skills.XPGainReason;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.EventUtils;
|
import com.gmail.nossr50.util.EventUtils;
|
||||||
import com.gmail.nossr50.util.Misc;
|
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
||||||
public class SkillresetCommand extends ExperienceCommand {
|
/**
|
||||||
private CommandSender sender;
|
* This class mirrors the structure of ExperienceCommand, except the
|
||||||
private Command command;
|
* value/quantity argument is removed.
|
||||||
private int argsLength;
|
*/
|
||||||
|
public class SkillresetCommand implements TabExecutor {
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
this.command = command;
|
PrimarySkill skill;
|
||||||
this.sender = sender;
|
|
||||||
argsLength = args.length;
|
|
||||||
|
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 1:
|
case 1:
|
||||||
if (CommandUtils.noConsoleUsage(sender)) {
|
if (CommandUtils.noConsoleUsage(sender)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Permissions.skillreset(sender)) {
|
if (!permissionsCheckSelf(sender)) {
|
||||||
sender.sendMessage(command.getPermissionMessage());
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isInvalidSkill(sender, args[0])) {
|
if (!validateArguments(sender, args[0])) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
player = (Player) sender;
|
if (args[0].equalsIgnoreCase("all")) {
|
||||||
mcMMOPlayer = UserManager.getPlayer(player);
|
skill = null;
|
||||||
profile = mcMMOPlayer.getProfile();
|
}
|
||||||
|
else {
|
||||||
|
skill = PrimarySkill.getSkill(args[1]);
|
||||||
|
}
|
||||||
|
|
||||||
editValues();
|
editValues((Player) sender, UserManager.getPlayer(sender.getName()).getProfile(), skill);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
if (!Permissions.skillresetOthers(sender)) {
|
if (!permissionsCheckOthers(sender)) {
|
||||||
sender.sendMessage(command.getPermissionMessage());
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isInvalidSkill(sender, args[1])) {
|
if (!validateArguments(sender, args[1])) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
String playerName = Misc.getMatchedPlayerName(args[0]);
|
if (args[1].equalsIgnoreCase("all")) {
|
||||||
mcMMOPlayer = UserManager.getPlayer(playerName, true);
|
skill = null;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
skill = PrimarySkill.getSkill(args[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
String playerName = CommandUtils.getMatchedPlayerName(args[0]);
|
||||||
|
McMMOPlayer mcMMOPlayer = UserManager.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 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) {
|
if (mcMMOPlayer == null) {
|
||||||
profile = mcMMO.getDatabaseManager().loadPlayerProfile(playerName, false);
|
UUID uuid = null;
|
||||||
|
OfflinePlayer player = mcMMO.p.getServer().getOfflinePlayer(playerName);
|
||||||
|
if (player != null) {
|
||||||
|
uuid = player.getUniqueId();
|
||||||
|
}
|
||||||
|
PlayerProfile profile = mcMMO.getDatabaseManager().loadPlayerProfile(playerName, uuid, false);
|
||||||
|
|
||||||
if (CommandUtils.unloadedProfile(sender, profile)) {
|
if (CommandUtils.unloadedProfile(sender, profile)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
editValues();
|
editValues(null, profile, skill);
|
||||||
profile.save(); // Since this is a temporary profile, we save it here.
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
profile = mcMMOPlayer.getProfile();
|
editValues(mcMMOPlayer.getPlayer(), mcMMOPlayer.getProfile(), skill);
|
||||||
player = mcMMOPlayer.getPlayer();
|
|
||||||
|
|
||||||
editValues();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
handleSenderMessage(sender, playerName);
|
handleSenderMessage(sender, playerName, skill);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -86,41 +104,77 @@ public class SkillresetCommand extends ExperienceCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean permissionsCheckSelf(CommandSender sender) {
|
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||||
return false;
|
switch (args.length) {
|
||||||
}
|
case 1:
|
||||||
|
List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
|
||||||
@Override
|
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<String>(playerNames.size()));
|
||||||
protected boolean permissionsCheckOthers(CommandSender sender) {
|
case 2:
|
||||||
return false;
|
return StringUtil.copyPartialMatches(args[1], PrimarySkill.SKILL_NAMES, new ArrayList<String>(PrimarySkill.SKILL_NAMES.size()));
|
||||||
}
|
default:
|
||||||
|
return ImmutableList.of();
|
||||||
@Override
|
}
|
||||||
protected void handleCommand(SkillType skill) {
|
|
||||||
if (argsLength == 1 && !Permissions.skillreset(sender, skill) || (argsLength == 2 && !Permissions.skillresetOthers(sender, skill))) {
|
|
||||||
sender.sendMessage(command.getPermissionMessage());
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void handleCommand(Player player, PlayerProfile profile, PrimarySkill skill) {
|
||||||
int levelsRemoved = profile.getSkillLevel(skill);
|
int levelsRemoved = profile.getSkillLevel(skill);
|
||||||
float xpRemoved = profile.getSkillXpLevelRaw(skill);
|
float xpRemoved = profile.getSkillXpLevelRaw(skill);
|
||||||
|
|
||||||
profile.modifySkill(skill, 0);
|
profile.modifySkill(skill, 0);
|
||||||
|
|
||||||
if (player == null) {
|
if (player == null) {
|
||||||
|
profile.scheduleAsyncSave();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
EventUtils.handleLevelChangeEvent(player, skill, levelsRemoved, xpRemoved, false);
|
EventUtils.handleLevelChangeEvent(player, skill, levelsRemoved, xpRemoved, false, XPGainReason.COMMAND);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
protected boolean permissionsCheckSelf(CommandSender sender) {
|
||||||
protected void handlePlayerMessageAll() {
|
return Permissions.skillreset(sender);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected boolean permissionsCheckOthers(CommandSender sender) {
|
||||||
|
return Permissions.skillresetOthers(sender);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void handlePlayerMessageAll(Player player) {
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.Reset.All"));
|
player.sendMessage(LocaleLoader.getString("Commands.Reset.All"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
protected void handlePlayerMessageSkill(Player player, PrimarySkill skill) {
|
||||||
protected void handlePlayerMessageSkill() {
|
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.Reset.Single", skill.getName()));
|
player.sendMessage(LocaleLoader.getString("Commands.Reset.Single", skill.getName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean validateArguments(CommandSender sender, String skillName) {
|
||||||
|
return skillName.equalsIgnoreCase("all") || !CommandUtils.isInvalidSkill(sender, skillName);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static void handleSenderMessage(CommandSender sender, String playerName, PrimarySkill skill) {
|
||||||
|
if (skill == null) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.2", playerName));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.2", skill.getName(), playerName));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void editValues(Player player, PlayerProfile profile, PrimarySkill skill) {
|
||||||
|
if (skill == null) {
|
||||||
|
for (PrimarySkill primarySkill : PrimarySkill.NON_CHILD_SKILLS) {
|
||||||
|
handleCommand(player, profile, primarySkill);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (player != null) {
|
||||||
|
handlePlayerMessageAll(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
handleCommand(player, profile, skill);
|
||||||
|
|
||||||
|
if (player != null) {
|
||||||
|
handlePlayerMessageSkill(player, skill);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,27 +1,29 @@
|
|||||||
package com.gmail.nossr50.commands.hardcore;
|
package com.gmail.nossr50.commands.hardcore;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.skills.PrimarySkill;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.config.Config;
|
import com.gmail.nossr50.config.Config;
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
|
|
||||||
public class HardcoreCommand extends HardcoreModeCommand {
|
public class HardcoreCommand extends HardcoreModeCommand {
|
||||||
@Override
|
@Override
|
||||||
protected boolean checkTogglePermissions() {
|
protected boolean checkTogglePermissions(CommandSender sender) {
|
||||||
return Permissions.hardcoreToggle(sender);
|
return Permissions.hardcoreToggle(sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean checkModifyPermissions() {
|
protected boolean checkModifyPermissions(CommandSender sender) {
|
||||||
return Permissions.hardcoreModify(sender);
|
return Permissions.hardcoreModify(sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean checkEnabled(String skill) {
|
protected boolean checkEnabled(PrimarySkill skill) {
|
||||||
if (skill.equalsIgnoreCase("ALL")) {
|
if (skill == null) {
|
||||||
for (SkillType skillType : SkillType.values()) {
|
for (PrimarySkill primarySkill : PrimarySkill.values()) {
|
||||||
if (!skillType.getHardcoreStatLossEnabled()) {
|
if (!primarySkill.getHardcoreStatLossEnabled()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -29,35 +31,35 @@ public class HardcoreCommand extends HardcoreModeCommand {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return SkillType.getSkill(skill).getHardcoreStatLossEnabled();
|
return skill.getHardcoreStatLossEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void enable(String skill) {
|
protected void enable(PrimarySkill skill) {
|
||||||
toggle(true);
|
toggle(true, skill);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void disable(String skill) {
|
protected void disable(PrimarySkill skill) {
|
||||||
toggle(false);
|
toggle(false, skill);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void modify() {
|
protected void modify(CommandSender sender, double newPercentage) {
|
||||||
Config.getInstance().setHardcoreDeathStatPenaltyPercentage(newPercent);
|
Config.getInstance().setHardcoreDeathStatPenaltyPercentage(newPercentage);
|
||||||
sender.sendMessage(LocaleLoader.getString("Hardcore.DeathStatLoss.PercentageChanged", percent.format(newPercent / 100D)));
|
sender.sendMessage(LocaleLoader.getString("Hardcore.DeathStatLoss.PercentageChanged", percent.format(newPercentage / 100.0D)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void toggle(boolean enable) {
|
private void toggle(boolean enable, PrimarySkill skill) {
|
||||||
if (skill.equalsIgnoreCase("ALL")) {
|
if (skill == null) {
|
||||||
for (SkillType skillType : SkillType.NON_CHILD_SKILLS) {
|
for (PrimarySkill primarySkill : PrimarySkill.NON_CHILD_SKILLS) {
|
||||||
skillType.setHardcoreStatLossEnabled(enable);
|
primarySkill.setHardcoreStatLossEnabled(enable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
SkillType.getSkill(skill).setHardcoreStatLossEnabled(enable);
|
skill.setHardcoreStatLossEnabled(enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Hardcore.Mode." + (enable ? "Enabled" : "Disabled"), LocaleLoader.getString("Hardcore.DeathStatLoss.Name"), skill));
|
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Hardcore.Mode." + (enable ? "Enabled" : "Disabled"), LocaleLoader.getString("Hardcore.DeathStatLoss.Name"), (skill == null ? "all skills" : skill.getName())));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,12 +4,12 @@ import java.text.DecimalFormat;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.skills.PrimarySkill;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabExecutor;
|
import org.bukkit.command.TabExecutor;
|
||||||
import org.bukkit.util.StringUtil;
|
import org.bukkit.util.StringUtil;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
import com.gmail.nossr50.util.StringUtils;
|
import com.gmail.nossr50.util.StringUtils;
|
||||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||||
@@ -17,31 +17,22 @@ import com.gmail.nossr50.util.commands.CommandUtils;
|
|||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
||||||
public abstract class HardcoreModeCommand implements TabExecutor {
|
public abstract class HardcoreModeCommand implements TabExecutor {
|
||||||
protected CommandSender sender;
|
protected final DecimalFormat percent = new DecimalFormat("##0.00%");
|
||||||
protected double newPercent;
|
|
||||||
protected DecimalFormat percent;
|
|
||||||
protected String skill;
|
|
||||||
|
|
||||||
public HardcoreModeCommand() {
|
|
||||||
percent = new DecimalFormat("##0.00%");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 0:
|
case 0:
|
||||||
this.sender = sender;
|
if (!checkTogglePermissions(sender)) {
|
||||||
|
|
||||||
if (!checkTogglePermissions()) {
|
|
||||||
sender.sendMessage(command.getPermissionMessage());
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (checkEnabled("ALL")) {
|
if (checkEnabled(null)) {
|
||||||
disable("ALL");
|
disable(null);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
enable("ALL");
|
enable(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -53,7 +44,7 @@ public abstract class HardcoreModeCommand implements TabExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
enable("ALL");
|
enable(null);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,11 +54,11 @@ public abstract class HardcoreModeCommand implements TabExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
disable("ALL");
|
disable(null);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isInvalidPercentage(sender, args[0])) {
|
if (CommandUtils.isInvalidDouble(sender, args[0])) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,16 +67,20 @@ public abstract class HardcoreModeCommand implements TabExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
modify();
|
modify(sender, Double.parseDouble(args[0]));
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
if (!args[0].equalsIgnoreCase("ALL") && CommandUtils.isChildSkill(sender, SkillType.getSkill(args[0]))) {
|
if (CommandUtils.isInvalidSkill(sender, args[0])) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
skill = args[0];
|
PrimarySkill skill = PrimarySkill.getSkill(args[0]);
|
||||||
|
|
||||||
|
if (!CommandUtils.isChildSkill(sender, skill)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (CommandUtils.shouldEnableToggle(args[1])) {
|
if (CommandUtils.shouldEnableToggle(args[1])) {
|
||||||
if (!Permissions.hardcoreToggle(sender)) {
|
if (!Permissions.hardcoreToggle(sender)) {
|
||||||
@@ -103,7 +98,7 @@ public abstract class HardcoreModeCommand implements TabExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
disable(skill);
|
enable(skill);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,19 +123,10 @@ public abstract class HardcoreModeCommand implements TabExecutor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract boolean checkTogglePermissions();
|
protected abstract boolean checkTogglePermissions(CommandSender sender);
|
||||||
protected abstract boolean checkModifyPermissions();
|
protected abstract boolean checkModifyPermissions(CommandSender sender);
|
||||||
protected abstract boolean checkEnabled(String skill);
|
protected abstract boolean checkEnabled(PrimarySkill skill);
|
||||||
protected abstract void enable(String skill);
|
protected abstract void enable(PrimarySkill skill);
|
||||||
protected abstract void disable(String skill);
|
protected abstract void disable(PrimarySkill skill);
|
||||||
protected abstract void modify();
|
protected abstract void modify(CommandSender sender, double newPercentage);
|
||||||
|
|
||||||
private boolean isInvalidPercentage(CommandSender sender, String value) {
|
|
||||||
if (CommandUtils.isInvalidDouble(sender, value)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
newPercent = Double.parseDouble(value);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,27 +1,29 @@
|
|||||||
package com.gmail.nossr50.commands.hardcore;
|
package com.gmail.nossr50.commands.hardcore;
|
||||||
|
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.config.Config;
|
import com.gmail.nossr50.config.Config;
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
import com.gmail.nossr50.datatypes.skills.PrimarySkill;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
|
|
||||||
public class VampirismCommand extends HardcoreModeCommand {
|
public class VampirismCommand extends HardcoreModeCommand {
|
||||||
@Override
|
@Override
|
||||||
protected boolean checkTogglePermissions() {
|
protected boolean checkTogglePermissions(CommandSender sender) {
|
||||||
return Permissions.vampirismToggle(sender);
|
return Permissions.vampirismToggle(sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean checkModifyPermissions() {
|
protected boolean checkModifyPermissions(CommandSender sender) {
|
||||||
return Permissions.vampirismModify(sender);
|
return Permissions.vampirismModify(sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean checkEnabled(String skill) {
|
protected boolean checkEnabled(PrimarySkill skill) {
|
||||||
if (skill.equalsIgnoreCase("ALL")) {
|
if (skill == null) {
|
||||||
for (SkillType skillType : SkillType.values()) {
|
for (PrimarySkill primarySkill : PrimarySkill.values()) {
|
||||||
if (!skillType.getHardcoreVampirismEnabled()) {
|
if (!primarySkill.getHardcoreVampirismEnabled()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -29,35 +31,35 @@ public class VampirismCommand extends HardcoreModeCommand {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return SkillType.getSkill(skill).getHardcoreVampirismEnabled();
|
return skill.getHardcoreVampirismEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void enable(String skill) {
|
protected void enable(PrimarySkill skill) {
|
||||||
toggle(true);
|
toggle(true, skill);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void disable(String skill) {
|
protected void disable(PrimarySkill skill) {
|
||||||
toggle(false);
|
toggle(false, skill);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void modify() {
|
protected void modify(CommandSender sender, double newPercentage) {
|
||||||
Config.getInstance().setHardcoreVampirismStatLeechPercentage(newPercent);
|
Config.getInstance().setHardcoreVampirismStatLeechPercentage(newPercentage);
|
||||||
sender.sendMessage(LocaleLoader.getString("Hardcore.Vampirism.PercentageChanged", percent.format(newPercent / 100D)));
|
sender.sendMessage(LocaleLoader.getString("Hardcore.Vampirism.PercentageChanged", percent.format(newPercentage / 100.0D)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void toggle(boolean enable) {
|
private void toggle(boolean enable, PrimarySkill skill) {
|
||||||
if (skill.equalsIgnoreCase("ALL")) {
|
if (skill == null) {
|
||||||
for (SkillType skillType : SkillType.NON_CHILD_SKILLS) {
|
for (PrimarySkill primarySkill : PrimarySkill.NON_CHILD_SKILLS) {
|
||||||
skillType.setHardcoreVampirismEnabled(enable);
|
primarySkill.setHardcoreVampirismEnabled(enable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
SkillType.getSkill(skill).setHardcoreVampirismEnabled(enable);
|
skill.setHardcoreVampirismEnabled(enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Hardcore.Mode." + (enable ? "Enabled" : "Disabled"), LocaleLoader.getString("Hardcore.Vampirism.Name"), skill));
|
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Hardcore.Mode." + (enable ? "Enabled" : "Disabled"), LocaleLoader.getString("Hardcore.Vampirism.Name"), (skill == null ? "all skills" : skill)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,14 +1,16 @@
|
|||||||
package com.gmail.nossr50.commands.party;
|
package com.gmail.nossr50.commands.party;
|
||||||
|
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.party.PartyManager;
|
import com.gmail.nossr50.party.PartyManager;
|
||||||
import com.gmail.nossr50.util.Misc;
|
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
public class PartyChangeOwnerCommand implements CommandExecutor {
|
public class PartyChangeOwnerCommand implements CommandExecutor {
|
||||||
@@ -17,14 +19,15 @@ public class PartyChangeOwnerCommand implements CommandExecutor {
|
|||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 2:
|
case 2:
|
||||||
Party playerParty = UserManager.getPlayer((Player) sender).getParty();
|
Party playerParty = UserManager.getPlayer((Player) sender).getParty();
|
||||||
String targetName = Misc.getMatchedPlayerName(args[1]);
|
String targetName = CommandUtils.getMatchedPlayerName(args[1]);
|
||||||
|
OfflinePlayer target = mcMMO.p.getServer().getOfflinePlayer(targetName);
|
||||||
|
|
||||||
if (!playerParty.getMembers().contains(targetName)) {
|
if (!playerParty.hasMember(target.getUniqueId())) {
|
||||||
sender.sendMessage(LocaleLoader.getString("Party.NotInYourParty", targetName));
|
sender.sendMessage(LocaleLoader.getString("Party.NotInYourParty", targetName));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
PartyManager.setPartyLeader(targetName, playerParty);
|
PartyManager.setPartyLeader(target.getUniqueId(), playerParty);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -10,24 +10,22 @@ import com.gmail.nossr50.locale.LocaleLoader;
|
|||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
public class PartyChangePasswordCommand implements CommandExecutor {
|
public class PartyChangePasswordCommand implements CommandExecutor {
|
||||||
private Party playerParty;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
playerParty = UserManager.getPlayer((Player) sender).getParty();
|
Party party = UserManager.getPlayer((Player) sender).getParty();
|
||||||
|
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 1:
|
case 1:
|
||||||
unprotectParty(sender);
|
unprotectParty(party, sender);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
if (args[1].equalsIgnoreCase("clear") || args[1].equalsIgnoreCase("reset")) {
|
if (args[1].equalsIgnoreCase("clear") || args[1].equalsIgnoreCase("reset")) {
|
||||||
unprotectParty(sender);
|
unprotectParty(party, sender);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
protectParty(sender, args[1]);
|
protectParty(party, sender, args[1]);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -37,15 +35,15 @@ public class PartyChangePasswordCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void unprotectParty(CommandSender sender) {
|
private void unprotectParty(Party party, CommandSender sender) {
|
||||||
playerParty.setLocked(true);
|
party.setLocked(true);
|
||||||
playerParty.setPassword(null);
|
party.setPassword(null);
|
||||||
sender.sendMessage(LocaleLoader.getString("Party.Password.Removed"));
|
sender.sendMessage(LocaleLoader.getString("Party.Password.Removed"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void protectParty(CommandSender sender, String password) {
|
private void protectParty(Party party, CommandSender sender, String password) {
|
||||||
playerParty.setLocked(true);
|
party.setLocked(true);
|
||||||
playerParty.setPassword(password);
|
party.setPassword(password);
|
||||||
sender.sendMessage(LocaleLoader.getString("Party.Password.Set", password));
|
sender.sendMessage(LocaleLoader.getString("Party.Password.Set", password));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package com.gmail.nossr50.commands.party;
|
package com.gmail.nossr50.commands.party;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
@@ -12,9 +12,10 @@ import org.bukkit.command.TabExecutor;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.util.StringUtil;
|
import org.bukkit.util.StringUtil;
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.commands.chat.PartyChatCommand;
|
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.commands.party.teleport.PtpCommand;
|
||||||
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
@@ -24,11 +25,8 @@ import com.gmail.nossr50.util.player.UserManager;
|
|||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
||||||
public class PartyCommand implements TabExecutor {
|
public class PartyCommand implements TabExecutor {
|
||||||
private McMMOPlayer mcMMOPlayer;
|
|
||||||
private Player player;
|
|
||||||
|
|
||||||
private static final List<String> PARTY_SUBCOMMANDS;
|
private static final List<String> PARTY_SUBCOMMANDS;
|
||||||
private static final List<String> EXPSHARE_COMPLETIONS = ImmutableList.of("none", "equal");
|
private static final List<String> XPSHARE_COMPLETIONS = ImmutableList.of("none", "equal");
|
||||||
private static final List<String> ITEMSHARE_COMPLETIONS = ImmutableList.of("none", "equal", "random", "loot", "mining", "herbalism", "woodcutting", "misc");
|
private static final List<String> ITEMSHARE_COMPLETIONS = ImmutableList.of("none", "equal", "random", "loot", "mining", "herbalism", "woodcutting", "misc");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
@@ -46,7 +44,7 @@ public class PartyCommand implements TabExecutor {
|
|||||||
private CommandExecutor partyAcceptCommand = new PartyAcceptCommand();
|
private CommandExecutor partyAcceptCommand = new PartyAcceptCommand();
|
||||||
private CommandExecutor partyCreateCommand = new PartyCreateCommand();
|
private CommandExecutor partyCreateCommand = new PartyCreateCommand();
|
||||||
private CommandExecutor partyQuitCommand = new PartyQuitCommand();
|
private CommandExecutor partyQuitCommand = new PartyQuitCommand();
|
||||||
private CommandExecutor partyExpShareCommand = new PartyExpShareCommand();
|
private CommandExecutor partyXpShareCommand = new PartyXpShareCommand();
|
||||||
private CommandExecutor partyItemShareCommand = new PartyItemShareCommand();
|
private CommandExecutor partyItemShareCommand = new PartyItemShareCommand();
|
||||||
private CommandExecutor partyInviteCommand = new PartyInviteCommand();
|
private CommandExecutor partyInviteCommand = new PartyInviteCommand();
|
||||||
private CommandExecutor partyKickCommand = new PartyKickCommand();
|
private CommandExecutor partyKickCommand = new PartyKickCommand();
|
||||||
@@ -57,8 +55,9 @@ public class PartyCommand implements TabExecutor {
|
|||||||
private CommandExecutor partyRenameCommand = new PartyRenameCommand();
|
private CommandExecutor partyRenameCommand = new PartyRenameCommand();
|
||||||
private CommandExecutor partyInfoCommand = new PartyInfoCommand();
|
private CommandExecutor partyInfoCommand = new PartyInfoCommand();
|
||||||
private CommandExecutor partyHelpCommand = new PartyHelpCommand();
|
private CommandExecutor partyHelpCommand = new PartyHelpCommand();
|
||||||
private CommandExecutor partyTeleportCommand = mcMMO.p.getCommand("ptp").getExecutor();
|
private CommandExecutor partyTeleportCommand = new PtpCommand();
|
||||||
private CommandExecutor partyChatCommand = new PartyChatCommand();
|
private CommandExecutor partyChatCommand = new PartyChatCommand();
|
||||||
|
private CommandExecutor partyAllianceCommand = new PartyAllianceCommand();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
@@ -71,13 +70,18 @@ public class PartyCommand implements TabExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
mcMMOPlayer = UserManager.getPlayer(player);
|
|
||||||
|
if (!UserManager.hasPlayerDataKey(player)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||||
|
|
||||||
if (args.length < 1) {
|
if (args.length < 1) {
|
||||||
if (!mcMMOPlayer.inParty()) {
|
if (!mcMMOPlayer.inParty()) {
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Party.None"));
|
sender.sendMessage(LocaleLoader.getString("Commands.Party.None"));
|
||||||
return printUsage();
|
return printUsage(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
return partyInfoCommand.onCommand(sender, command, label, args);
|
return partyInfoCommand.onCommand(sender, command, label, args);
|
||||||
@@ -86,7 +90,7 @@ public class PartyCommand implements TabExecutor {
|
|||||||
PartySubcommandType subcommand = PartySubcommandType.getSubcommand(args[0]);
|
PartySubcommandType subcommand = PartySubcommandType.getSubcommand(args[0]);
|
||||||
|
|
||||||
if (subcommand == null) {
|
if (subcommand == null) {
|
||||||
return printUsage();
|
return printUsage(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Can't use this for lock/unlock since they're handled by the same command
|
// Can't use this for lock/unlock since they're handled by the same command
|
||||||
@@ -111,7 +115,7 @@ public class PartyCommand implements TabExecutor {
|
|||||||
// Party member commands
|
// Party member commands
|
||||||
if (!mcMMOPlayer.inParty()) {
|
if (!mcMMOPlayer.inParty()) {
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Party.None"));
|
sender.sendMessage(LocaleLoader.getString("Commands.Party.None"));
|
||||||
return printUsage();
|
return printUsage(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (subcommand) {
|
switch (subcommand) {
|
||||||
@@ -130,14 +134,14 @@ public class PartyCommand implements TabExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Party leader commands
|
// Party leader commands
|
||||||
if (!mcMMOPlayer.getParty().getLeader().equalsIgnoreCase(player.getName())) {
|
if (!mcMMOPlayer.getParty().getLeader().getUniqueId().equals(player.getUniqueId())) {
|
||||||
sender.sendMessage(LocaleLoader.getString("Party.NotOwner"));
|
sender.sendMessage(LocaleLoader.getString("Party.NotOwner"));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (subcommand) {
|
switch (subcommand) {
|
||||||
case EXPSHARE:
|
case XPSHARE:
|
||||||
return partyExpShareCommand.onCommand(sender, command, label, args);
|
return partyXpShareCommand.onCommand(sender, command, label, args);
|
||||||
case ITEMSHARE:
|
case ITEMSHARE:
|
||||||
return partyItemShareCommand.onCommand(sender, command, label, args);
|
return partyItemShareCommand.onCommand(sender, command, label, args);
|
||||||
case KICK:
|
case KICK:
|
||||||
@@ -153,6 +157,8 @@ public class PartyCommand implements TabExecutor {
|
|||||||
return partyChangePasswordCommand.onCommand(sender, command, label, args);
|
return partyChangePasswordCommand.onCommand(sender, command, label, args);
|
||||||
case RENAME:
|
case RENAME:
|
||||||
return partyRenameCommand.onCommand(sender, command, label, args);
|
return partyRenameCommand.onCommand(sender, command, label, args);
|
||||||
|
case ALLIANCE:
|
||||||
|
return partyAllianceCommand.onCommand(sender, command, label, args);
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -177,10 +183,10 @@ public class PartyCommand implements TabExecutor {
|
|||||||
case INVITE:
|
case INVITE:
|
||||||
case KICK:
|
case KICK:
|
||||||
case OWNER:
|
case OWNER:
|
||||||
Set<String> playerNames = UserManager.getPlayerNames();
|
List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
|
||||||
return StringUtil.copyPartialMatches(args[1], playerNames, new ArrayList<String>(playerNames.size()));
|
return StringUtil.copyPartialMatches(args[1], playerNames, new ArrayList<String>(playerNames.size()));
|
||||||
case EXPSHARE:
|
case XPSHARE:
|
||||||
return StringUtil.copyPartialMatches(args[1], EXPSHARE_COMPLETIONS, new ArrayList<String>(EXPSHARE_COMPLETIONS.size()));
|
return StringUtil.copyPartialMatches(args[1], XPSHARE_COMPLETIONS, new ArrayList<String>(XPSHARE_COMPLETIONS.size()));
|
||||||
case ITEMSHARE:
|
case ITEMSHARE:
|
||||||
return StringUtil.copyPartialMatches(args[1], ITEMSHARE_COMPLETIONS, new ArrayList<String>(ITEMSHARE_COMPLETIONS.size()));
|
return StringUtil.copyPartialMatches(args[1], ITEMSHARE_COMPLETIONS, new ArrayList<String>(ITEMSHARE_COMPLETIONS.size()));
|
||||||
case LOCK:
|
case LOCK:
|
||||||
@@ -192,7 +198,10 @@ public class PartyCommand implements TabExecutor {
|
|||||||
List<String> matches = StringUtil.copyPartialMatches(args[1], PtpCommand.TELEPORT_SUBCOMMANDS, new ArrayList<String>(PtpCommand.TELEPORT_SUBCOMMANDS.size()));
|
List<String> matches = StringUtil.copyPartialMatches(args[1], PtpCommand.TELEPORT_SUBCOMMANDS, new ArrayList<String>(PtpCommand.TELEPORT_SUBCOMMANDS.size()));
|
||||||
|
|
||||||
if (matches.size() == 0) {
|
if (matches.size() == 0) {
|
||||||
playerNames = UserManager.getPlayerNames();
|
Player player = (Player) sender;
|
||||||
|
Party party = UserManager.getPlayer(player).getParty();
|
||||||
|
|
||||||
|
playerNames = party.getOnlinePlayerNames(player);
|
||||||
return StringUtil.copyPartialMatches(args[1], playerNames, new ArrayList<String>(playerNames.size()));
|
return StringUtil.copyPartialMatches(args[1], playerNames, new ArrayList<String>(playerNames.size()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -211,7 +220,7 @@ public class PartyCommand implements TabExecutor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean printUsage() {
|
private boolean printUsage(Player player) {
|
||||||
player.sendMessage(LocaleLoader.getString("Party.Help.0", "/party join"));
|
player.sendMessage(LocaleLoader.getString("Party.Help.0", "/party join"));
|
||||||
player.sendMessage(LocaleLoader.getString("Party.Help.1", "/party create"));
|
player.sendMessage(LocaleLoader.getString("Party.Help.1", "/party create"));
|
||||||
player.sendMessage(LocaleLoader.getString("Party.Help.2", "/party ?"));
|
player.sendMessage(LocaleLoader.getString("Party.Help.2", "/party ?"));
|
||||||
@@ -219,13 +228,7 @@ public class PartyCommand implements TabExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String[] extractArgs(String[] args) {
|
private String[] extractArgs(String[] args) {
|
||||||
String[] newArgs = new String[args.length - 1];
|
return Arrays.copyOfRange(args, 1, args.length);
|
||||||
|
|
||||||
for (int i = 1; i < args.length; i++) {
|
|
||||||
newArgs[i - 1] = args[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
return newArgs;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isItemShareCategory(String category) {
|
private boolean isItemShareCategory(String category) {
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ public class PartyHelpCommand implements CommandExecutor {
|
|||||||
sender.sendMessage(LocaleLoader.getString("Party.Help.7", "/party leader"));
|
sender.sendMessage(LocaleLoader.getString("Party.Help.7", "/party leader"));
|
||||||
sender.sendMessage(LocaleLoader.getString("Party.Help.8", "/party disband"));
|
sender.sendMessage(LocaleLoader.getString("Party.Help.8", "/party disband"));
|
||||||
sender.sendMessage(LocaleLoader.getString("Party.Help.9", "/party itemshare"));
|
sender.sendMessage(LocaleLoader.getString("Party.Help.9", "/party itemshare"));
|
||||||
sender.sendMessage(LocaleLoader.getString("Party.Help.10", "/party expshare"));
|
sender.sendMessage(LocaleLoader.getString("Party.Help.10", "/party xpshare"));
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -1,14 +1,17 @@
|
|||||||
package com.gmail.nossr50.commands.party;
|
package com.gmail.nossr50.commands.party;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.config.Config;
|
import com.gmail.nossr50.config.Config;
|
||||||
import com.gmail.nossr50.datatypes.party.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.party.ShareMode;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
@@ -16,55 +19,74 @@ import com.gmail.nossr50.party.PartyManager;
|
|||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
public class PartyInfoCommand implements CommandExecutor {
|
public class PartyInfoCommand implements CommandExecutor {
|
||||||
private McMMOPlayer mcMMOPlayer;
|
|
||||||
private Player player;
|
|
||||||
private Party playerParty;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 0:
|
case 0:
|
||||||
case 1:
|
case 1:
|
||||||
player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
mcMMOPlayer = UserManager.getPlayer(player);
|
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||||
playerParty = mcMMOPlayer.getParty();
|
Party party = mcMMOPlayer.getParty();
|
||||||
|
|
||||||
displayPartyHeader();
|
displayPartyHeader(player, party);
|
||||||
displayShareModeInfo();
|
displayShareModeInfo(player, party);
|
||||||
displayMemberInfo();
|
displayPartyFeatures(player, party);
|
||||||
|
displayMemberInfo(player, mcMMOPlayer, party);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Usage.1", "party", "info"));
|
sender.sendMessage(LocaleLoader.getString("Commands.Usage.1", "party", "info"));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private String createMembersList() {
|
private void displayPartyHeader(Player player, Party party) {
|
||||||
StringBuilder memberList = new StringBuilder();
|
player.sendMessage(LocaleLoader.getString("Commands.Party.Header"));
|
||||||
|
|
||||||
for (String memberName : playerParty.getMembers()) {
|
StringBuilder status = new StringBuilder();
|
||||||
Player member = mcMMO.p.getServer().getPlayerExact(memberName);
|
status.append(LocaleLoader.getString("Commands.Party.Status", party.getName(), LocaleLoader.getString("Party.Status." + (party.isLocked() ? "Locked" : "Unlocked")), party.getLevel()));
|
||||||
|
|
||||||
if (playerParty.getLeader().equalsIgnoreCase(memberName)) {
|
if (!party.hasReachedLevelCap()) {
|
||||||
memberList.append(ChatColor.GOLD);
|
status.append(" (").append(party.getXpToLevelPercentage()).append(")");
|
||||||
}
|
}
|
||||||
else if (member != null) {
|
|
||||||
memberList.append(ChatColor.WHITE);
|
player.sendMessage(status.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void displayPartyFeatures(Player player, Party party) {
|
||||||
|
player.sendMessage(LocaleLoader.getString("Commands.Party.Features.Header"));
|
||||||
|
|
||||||
|
List<String> unlockedPartyFeatures = new ArrayList<String>();
|
||||||
|
List<String> lockedPartyFeatures = new ArrayList<String>();
|
||||||
|
|
||||||
|
for (PartyFeature partyFeature : PartyFeature.values()) {
|
||||||
|
if (!partyFeature.hasPermission(player)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isUnlockedFeature(party, partyFeature)) {
|
||||||
|
unlockedPartyFeatures.add(partyFeature.getLocaleString());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
memberList.append(ChatColor.GRAY);
|
lockedPartyFeatures.add(partyFeature.getFeatureLockedLocaleString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
memberList.append(memberName).append(" ");
|
player.sendMessage(LocaleLoader.getString("Commands.Party.UnlockedFeatures", unlockedPartyFeatures.isEmpty() ? "None" : unlockedPartyFeatures));
|
||||||
|
|
||||||
|
for (String message : lockedPartyFeatures) {
|
||||||
|
player.sendMessage(message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return memberList.toString();
|
private boolean isUnlockedFeature(Party party, PartyFeature partyFeature) {
|
||||||
|
return party.getLevel() >= Config.getInstance().getPartyFeatureUnlockLevel(partyFeature);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void displayShareModeInfo() {
|
private void displayShareModeInfo(Player player, Party party) {
|
||||||
boolean xpShareEnabled = Config.getInstance().getExpShareEnabled();
|
boolean xpShareEnabled = isUnlockedFeature(party, PartyFeature.XP_SHARE);
|
||||||
boolean itemShareEnabled = Config.getInstance().getItemShareEnabled();
|
boolean itemShareEnabled = isUnlockedFeature(party, PartyFeature.ITEM_SHARE);
|
||||||
boolean itemSharingActive = (playerParty.getItemShareMode() != ShareMode.NONE);
|
boolean itemSharingActive = (party.getItemShareMode() != ShareMode.NONE);
|
||||||
|
|
||||||
if (!xpShareEnabled && !itemShareEnabled) {
|
if (!xpShareEnabled && !itemShareEnabled) {
|
||||||
return;
|
return;
|
||||||
@@ -75,11 +97,11 @@ public class PartyInfoCommand implements CommandExecutor {
|
|||||||
String separator = "";
|
String separator = "";
|
||||||
|
|
||||||
if (xpShareEnabled) {
|
if (xpShareEnabled) {
|
||||||
expShareInfo = LocaleLoader.getString("Commands.Party.ExpShare", playerParty.getXpShareMode().toString());
|
expShareInfo = LocaleLoader.getString("Commands.Party.ExpShare", party.getXpShareMode().toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (itemShareEnabled) {
|
if (itemShareEnabled) {
|
||||||
itemShareInfo = LocaleLoader.getString("Commands.Party.ItemShare", playerParty.getItemShareMode().toString());
|
itemShareInfo = LocaleLoader.getString("Commands.Party.ItemShare", party.getItemShareMode().toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (xpShareEnabled && itemShareEnabled) {
|
if (xpShareEnabled && itemShareEnabled) {
|
||||||
@@ -87,28 +109,18 @@ public class PartyInfoCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.Party.ShareMode") + expShareInfo + separator + itemShareInfo);
|
player.sendMessage(LocaleLoader.getString("Commands.Party.ShareMode") + expShareInfo + separator + itemShareInfo);
|
||||||
|
|
||||||
if (itemSharingActive) {
|
if (itemSharingActive) {
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.Party.ItemShareCategories", playerParty.getItemShareCategories()));
|
player.sendMessage(LocaleLoader.getString("Commands.Party.ItemShareCategories", party.getItemShareCategories()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void displayPartyHeader() {
|
private void displayMemberInfo(Player player, McMMOPlayer mcMMOPlayer, Party party) {
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.Party.Header"));
|
List<Player> nearMembers = PartyManager.getNearMembers(mcMMOPlayer);
|
||||||
|
int membersOnline = party.getOnlineMembers().size() - 1;
|
||||||
if (playerParty.isLocked()) {
|
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.Party.Status", playerParty.getName(), LocaleLoader.getString("Party.Status.Locked")));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.Party.Status", playerParty.getName(), LocaleLoader.getString("Party.Status.Unlocked")));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void displayMemberInfo() {
|
|
||||||
int membersNear = PartyManager.getNearMembers(mcMMOPlayer).size();
|
|
||||||
int membersOnline = playerParty.getOnlineMembers().size() - 1;
|
|
||||||
|
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.Party.Members.Header"));
|
player.sendMessage(LocaleLoader.getString("Commands.Party.Members.Header"));
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.Party.MembersNear", membersNear, membersOnline));
|
player.sendMessage(LocaleLoader.getString("Commands.Party.MembersNear", nearMembers.size(), membersOnline));
|
||||||
player.sendMessage(createMembersList());
|
player.sendMessage(party.createMembersList(player.getName(), nearMembers));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import com.gmail.nossr50.datatypes.party.Party;
|
|||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.party.PartyManager;
|
import com.gmail.nossr50.party.PartyManager;
|
||||||
import com.gmail.nossr50.util.Misc;
|
|
||||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
@@ -18,8 +17,8 @@ public class PartyInviteCommand implements CommandExecutor {
|
|||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 2:
|
case 2:
|
||||||
String targetName = Misc.getMatchedPlayerName(args[1]);
|
String targetName = CommandUtils.getMatchedPlayerName(args[1]);
|
||||||
McMMOPlayer mcMMOTarget = UserManager.getPlayer(targetName, true);
|
McMMOPlayer mcMMOTarget = UserManager.getOfflinePlayer(targetName);
|
||||||
|
|
||||||
if (!CommandUtils.checkPlayerExistence(sender, targetName, mcMMOTarget)) {
|
if (!CommandUtils.checkPlayerExistence(sender, targetName, mcMMOTarget)) {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import org.bukkit.entity.Player;
|
|||||||
import com.gmail.nossr50.config.Config;
|
import com.gmail.nossr50.config.Config;
|
||||||
import com.gmail.nossr50.datatypes.party.ItemShareType;
|
import com.gmail.nossr50.datatypes.party.ItemShareType;
|
||||||
import com.gmail.nossr50.datatypes.party.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.party.ShareMode;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.StringUtils;
|
import com.gmail.nossr50.util.StringUtils;
|
||||||
@@ -15,18 +16,17 @@ import com.gmail.nossr50.util.commands.CommandUtils;
|
|||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
public class PartyItemShareCommand implements CommandExecutor {
|
public class PartyItemShareCommand implements CommandExecutor {
|
||||||
private Party playerParty;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
if (!Config.getInstance().getItemShareEnabled()) {
|
Party party = UserManager.getPlayer((Player) sender).getParty();
|
||||||
sender.sendMessage(LocaleLoader.getString("Party.ItemShare.Disabled"));
|
|
||||||
|
if (party.getLevel() < Config.getInstance().getPartyFeatureUnlockLevel(PartyFeature.ITEM_SHARE)) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Party.Feature.Disabled.4"));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 2:
|
case 2:
|
||||||
playerParty = UserManager.getPlayer((Player) sender).getParty();
|
|
||||||
ShareMode mode = ShareMode.getShareMode(args[1].toUpperCase());
|
ShareMode mode = ShareMode.getShareMode(args[1].toUpperCase());
|
||||||
|
|
||||||
if (mode == null) {
|
if (mode == null) {
|
||||||
@@ -34,12 +34,11 @@ public class PartyItemShareCommand implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
handleChangingShareMode(mode);
|
handleChangingShareMode(party, mode);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
playerParty = UserManager.getPlayer((Player) sender).getParty();
|
boolean toggle;
|
||||||
boolean toggle = false;
|
|
||||||
|
|
||||||
if (CommandUtils.shouldEnableToggle(args[2])) {
|
if (CommandUtils.shouldEnableToggle(args[2])) {
|
||||||
toggle = true;
|
toggle = true;
|
||||||
@@ -53,7 +52,7 @@ public class PartyItemShareCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
handleToggleItemShareCategory(ItemShareType.valueOf(args[1].toUpperCase()), toggle);
|
handleToggleItemShareCategory(party, ItemShareType.valueOf(args[1].toUpperCase()), toggle);
|
||||||
}
|
}
|
||||||
catch (IllegalArgumentException ex) {
|
catch (IllegalArgumentException ex) {
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "itemshare", "<loot | mining | herbalism | woodcutting | misc> <true | false>"));
|
sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "itemshare", "<loot | mining | herbalism | woodcutting | misc> <true | false>"));
|
||||||
@@ -68,22 +67,22 @@ public class PartyItemShareCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleChangingShareMode(ShareMode mode) {
|
private void handleChangingShareMode(Party party, ShareMode mode) {
|
||||||
playerParty.setItemShareMode(mode);
|
party.setItemShareMode(mode);
|
||||||
|
|
||||||
String changeModeMessage = LocaleLoader.getString("Commands.Party.SetSharing", LocaleLoader.getString("Party.ShareType.Item"), LocaleLoader.getString("Party.ShareMode." + StringUtils.getCapitalized(mode.toString())));
|
String changeModeMessage = LocaleLoader.getString("Commands.Party.SetSharing", LocaleLoader.getString("Party.ShareType.Item"), LocaleLoader.getString("Party.ShareMode." + StringUtils.getCapitalized(mode.toString())));
|
||||||
|
|
||||||
for (Player member : playerParty.getOnlineMembers()) {
|
for (Player member : party.getOnlineMembers()) {
|
||||||
member.sendMessage(changeModeMessage);
|
member.sendMessage(changeModeMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleToggleItemShareCategory(ItemShareType type, boolean toggle) {
|
private void handleToggleItemShareCategory(Party party, ItemShareType type, boolean toggle) {
|
||||||
playerParty.setSharingDrops(type, toggle);
|
party.setSharingDrops(type, toggle);
|
||||||
|
|
||||||
String toggleMessage = LocaleLoader.getString("Commands.Party.ToggleShareCategory", StringUtils.getCapitalized(type.toString()), toggle ? "enabled" : "disabled");
|
String toggleMessage = LocaleLoader.getString("Commands.Party.ToggleShareCategory", StringUtils.getCapitalized(type.toString()), toggle ? "enabled" : "disabled");
|
||||||
|
|
||||||
for (Player member : playerParty.getOnlineMembers()) {
|
for (Player member : party.getOnlineMembers()) {
|
||||||
member.sendMessage(toggleMessage);
|
member.sendMessage(toggleMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,30 +9,37 @@ import com.gmail.nossr50.datatypes.party.Party;
|
|||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.party.PartyManager;
|
import com.gmail.nossr50.party.PartyManager;
|
||||||
import com.gmail.nossr50.util.Misc;
|
|
||||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
public class PartyJoinCommand implements CommandExecutor {
|
public class PartyJoinCommand implements CommandExecutor {
|
||||||
private McMMOPlayer mcMMOTarget;
|
|
||||||
private Player target;
|
|
||||||
private Party targetParty;
|
|
||||||
|
|
||||||
private McMMOPlayer mcMMOPlayer;
|
|
||||||
private Player player;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 2:
|
case 2:
|
||||||
case 3:
|
case 3:
|
||||||
// Verify target exists and is in a different party than the player
|
String targetName = CommandUtils.getMatchedPlayerName(args[1]);
|
||||||
if (!canJoinParty(sender, args[1])) {
|
McMMOPlayer mcMMOTarget = UserManager.getPlayer(targetName);
|
||||||
|
|
||||||
|
if (!CommandUtils.checkPlayerExistence(sender, targetName, mcMMOTarget)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
mcMMOPlayer = UserManager.getPlayer((Player) sender);
|
Player target = mcMMOTarget.getPlayer();
|
||||||
player = mcMMOPlayer.getPlayer();
|
|
||||||
|
if (!mcMMOTarget.inParty()) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Party.PlayerNotInParty", targetName));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player = (Player) sender;
|
||||||
|
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||||
|
Party targetParty = mcMMOTarget.getParty();
|
||||||
|
|
||||||
|
if (player.equals(target) || (mcMMOPlayer.inParty() && mcMMOPlayer.getParty().equals(targetParty))) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Party.Join.Self"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
String password = getPassword(args);
|
String password = getPassword(args);
|
||||||
|
|
||||||
@@ -65,31 +72,4 @@ public class PartyJoinCommand implements CommandExecutor {
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean canJoinParty(CommandSender sender, String targetName) {
|
|
||||||
targetName = Misc.getMatchedPlayerName(targetName);
|
|
||||||
mcMMOTarget = UserManager.getPlayer(targetName);
|
|
||||||
|
|
||||||
if (!CommandUtils.checkPlayerExistence(sender, targetName, mcMMOTarget)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
target = mcMMOTarget.getPlayer();
|
|
||||||
|
|
||||||
if (!mcMMOTarget.inParty()) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Party.PlayerNotInParty", targetName));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
player = (Player) sender;
|
|
||||||
mcMMOPlayer = UserManager.getPlayer(player);
|
|
||||||
targetParty = mcMMOTarget.getParty();
|
|
||||||
|
|
||||||
if (player.equals(target) || (mcMMOPlayer.inParty() && mcMMOPlayer.getParty().equals(targetParty))) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Party.Join.Self"));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import com.gmail.nossr50.datatypes.party.Party;
|
|||||||
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
|
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.party.PartyManager;
|
import com.gmail.nossr50.party.PartyManager;
|
||||||
|
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
public class PartyKickCommand implements CommandExecutor {
|
public class PartyKickCommand implements CommandExecutor {
|
||||||
@@ -19,13 +20,15 @@ public class PartyKickCommand implements CommandExecutor {
|
|||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 2:
|
case 2:
|
||||||
Party playerParty = UserManager.getPlayer((Player) sender).getParty();
|
Party playerParty = UserManager.getPlayer((Player) sender).getParty();
|
||||||
OfflinePlayer target = mcMMO.p.getServer().getOfflinePlayer(args[1]);
|
String targetName = CommandUtils.getMatchedPlayerName(args[1]);
|
||||||
|
|
||||||
if (!playerParty.getMembers().contains(target.getName())) {
|
if (!playerParty.hasMember(targetName)) {
|
||||||
sender.sendMessage(LocaleLoader.getString("Party.NotInYourParty", target.getName()));
|
sender.sendMessage(LocaleLoader.getString("Party.NotInYourParty", targetName));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OfflinePlayer target = mcMMO.p.getServer().getOfflinePlayer(targetName);
|
||||||
|
|
||||||
if (target.isOnline()) {
|
if (target.isOnline()) {
|
||||||
Player onlineTarget = target.getPlayer();
|
Player onlineTarget = target.getPlayer();
|
||||||
String partyName = playerParty.getName();
|
String partyName = playerParty.getName();
|
||||||
|
|||||||
@@ -12,19 +12,15 @@ import com.gmail.nossr50.util.commands.CommandUtils;
|
|||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
public class PartyLockCommand implements CommandExecutor {
|
public class PartyLockCommand implements CommandExecutor {
|
||||||
private Party playerParty;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
playerParty = UserManager.getPlayer((Player) sender).getParty();
|
|
||||||
|
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 1:
|
case 1:
|
||||||
if (args[0].equalsIgnoreCase("lock")) {
|
if (args[0].equalsIgnoreCase("lock")) {
|
||||||
lockParty(sender, command.getPermissionMessage());
|
togglePartyLock(sender, true);
|
||||||
}
|
}
|
||||||
else if (args[0].equalsIgnoreCase("unlock")) {
|
else if (args[0].equalsIgnoreCase("unlock")) {
|
||||||
unlockParty(sender, command.getPermissionMessage());
|
togglePartyLock(sender, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -36,10 +32,10 @@ public class PartyLockCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (CommandUtils.shouldEnableToggle(args[1])) {
|
if (CommandUtils.shouldEnableToggle(args[1])) {
|
||||||
lockParty(sender, command.getPermissionMessage());
|
togglePartyLock(sender, true);
|
||||||
}
|
}
|
||||||
else if (CommandUtils.shouldDisableToggle(args[1])) {
|
else if (CommandUtils.shouldDisableToggle(args[1])) {
|
||||||
unlockParty(sender, command.getPermissionMessage());
|
togglePartyLock(sender, false);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
sendUsageStrings(sender);
|
sendUsageStrings(sender);
|
||||||
@@ -53,44 +49,25 @@ public class PartyLockCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Handle locking a party.
|
|
||||||
*/
|
|
||||||
private void lockParty(CommandSender sender, String permissionMessage) {
|
|
||||||
if (!Permissions.partySubcommand(sender, PartySubcommandType.LOCK)) {
|
|
||||||
sender.sendMessage(permissionMessage);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (playerParty.isLocked()) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Party.IsLocked"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
playerParty.setLocked(true);
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Party.Locked"));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handle unlocking a party.
|
|
||||||
*/
|
|
||||||
private void unlockParty(CommandSender sender, String permissionMessage) {
|
|
||||||
if (!Permissions.partySubcommand(sender, PartySubcommandType.UNLOCK)) {
|
|
||||||
sender.sendMessage(permissionMessage);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!playerParty.isLocked()) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Party.IsntLocked"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
playerParty.setLocked(false);
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Party.Unlocked"));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void sendUsageStrings(CommandSender sender) {
|
private void sendUsageStrings(CommandSender sender) {
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "lock", "[on|off]"));
|
sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "lock", "[on|off]"));
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Usage.1", "party", "unlock"));
|
sender.sendMessage(LocaleLoader.getString("Commands.Usage.1", "party", "unlock"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void togglePartyLock(CommandSender sender, boolean lock) {
|
||||||
|
Party party = UserManager.getPlayer((Player) sender).getParty();
|
||||||
|
|
||||||
|
if (!Permissions.partySubcommand(sender, lock ? PartySubcommandType.LOCK : PartySubcommandType.UNLOCK)) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("mcMMO.NoPermission"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lock ? party.isLocked() : !party.isLocked()) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Party." + (lock ? "IsLocked" : "IsntLocked")));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
party.setLocked(lock);
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Party." + (lock ? "Locked" : "Unlocked")));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user