PocketMine-MP 5.41.1 git-4f563d39044b06d1e4724032369d67f347dd3b86
Loading...
Searching...
No Matches
VanillaEnchantmentsInputs.php
1<?php
2
3/*
4 *
5 * ____ _ _ __ __ _ __ __ ____
6 * | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
7 * | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
8 * | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
9 * |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
10 *
11 * This program is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License as published by
13 * the Free Software Foundation, either version 3 of the License, or
14 * (at your option) any later version.
15 *
16 * @author PocketMine Team
17 * @link http://www.pocketmine.net/
18 *
19 *
20 */
21
22declare(strict_types=1);
23
24namespace pocketmine\item\enchantment;
25
29
35 public function getTargetClassName() : string{
36 return "VanillaEnchantments";
37 }
38
39 public function getTargetClassDocComment() : array{
40 return ["Allows getting any vanilla enchantment implemented by PocketMine-MP"];
41 }
42
43 protected function setup() : void{
44 self::register("PROTECTION", new ProtectionEnchantment(
45 KnownTranslationFactory::enchantment_protect_all(),
46 Rarity::COMMON,
47 0,
48 0,
49 4,
50 0.75,
51 null,
52 fn(int $level) : int => 11 * ($level - 1) + 1,
53 20
54 ));
55 self::register("FIRE_PROTECTION", new ProtectionEnchantment(
56 KnownTranslationFactory::enchantment_protect_fire(),
57 Rarity::UNCOMMON,
58 0,
59 0,
60 4,
61 1.25,
62 [
63 EntityDamageEvent::CAUSE_FIRE,
64 EntityDamageEvent::CAUSE_FIRE_TICK,
65 EntityDamageEvent::CAUSE_LAVA
66 //TODO: check fireballs
67 ],
68 fn(int $level) : int => 8 * ($level - 1) + 10,
69 12
70 ));
71 self::register("FEATHER_FALLING", new ProtectionEnchantment(
72 KnownTranslationFactory::enchantment_protect_fall(),
73 Rarity::UNCOMMON,
74 0,
75 0,
76 4,
77 2.5,
78 [
79 EntityDamageEvent::CAUSE_FALL
80 ],
81 fn(int $level) : int => 6 * ($level - 1) + 5,
82 10
83 ));
84 self::register("BLAST_PROTECTION", new ProtectionEnchantment(
85 KnownTranslationFactory::enchantment_protect_explosion(),
86 Rarity::RARE,
87 0,
88 0,
89 4,
90 1.5,
91 [
92 EntityDamageEvent::CAUSE_BLOCK_EXPLOSION,
93 EntityDamageEvent::CAUSE_ENTITY_EXPLOSION
94 ],
95 fn(int $level) : int => 8 * ($level - 1) + 5,
96 12
97 ));
98 self::register("PROJECTILE_PROTECTION", new ProtectionEnchantment(
99 KnownTranslationFactory::enchantment_protect_projectile(),
100 Rarity::UNCOMMON,
101 0,
102 0,
103 4,
104 1.5,
105 [
106 EntityDamageEvent::CAUSE_PROJECTILE
107 ],
108 fn(int $level) : int => 6 * ($level - 1) + 3,
109 15
110 ));
111 self::register("THORNS", new Enchantment(
112 KnownTranslationFactory::enchantment_thorns(),
113 Rarity::MYTHIC,
114 0,
115 0,
116 3,
117 fn(int $level) : int => 20 * ($level - 1) + 10,
118 50
119 ));
120 self::register("RESPIRATION", new Enchantment(
121 KnownTranslationFactory::enchantment_oxygen(),
122 Rarity::RARE,
123 0,
124 0,
125 3,
126 fn(int $level) : int => 10 * $level,
127 30
128 ));
129
130 self::register("FROST_WALKER", new Enchantment(
131 KnownTranslationFactory::enchantment_frostwalker(),
132 Rarity::RARE,
133 0,
134 0,
135 2,
136 fn(int $level) : int => 10 * $level,
137 15
138 ));
139 self::register("AQUA_AFFINITY", new Enchantment(
140 KnownTranslationFactory::enchantment_waterWorker(),
141 Rarity::RARE,
142 0,
143 0,
144 1,
145 null,
146 40
147 ));
148
149 self::register("SHARPNESS", new SharpnessEnchantment(
150 KnownTranslationFactory::enchantment_damage_all(),
151 Rarity::COMMON,
152 0,
153 0,
154 5,
155 fn(int $level) : int => 11 * ($level - 1) + 1,
156 20
157 ));
158 self::register("KNOCKBACK", new KnockbackEnchantment(
159 KnownTranslationFactory::enchantment_knockback(),
160 Rarity::UNCOMMON,
161 0,
162 0,
163 2,
164 fn(int $level) : int => 20 * ($level - 1) + 5,
165 50
166 ));
167 self::register("FIRE_ASPECT", new FireAspectEnchantment(
168 KnownTranslationFactory::enchantment_fire(),
169 Rarity::RARE,
170 0,
171 0,
172 2,
173 fn(int $level) : int => 20 * ($level - 1) + 10,
174 50
175 ));
176 //TODO: smite, bane of arthropods, looting (these don't make sense now because their applicable mobs don't exist yet)
177
178 self::register("EFFICIENCY", new Enchantment(
179 KnownTranslationFactory::enchantment_digging(),
180 Rarity::COMMON,
181 0,
182 0,
183 5,
184 fn(int $level) : int => 10 * ($level - 1) + 1,
185 50
186 ));
187 self::register("FORTUNE", new Enchantment(
188 KnownTranslationFactory::enchantment_lootBonusDigger(),
189 Rarity::RARE,
190 0,
191 0,
192 3,
193 fn(int $level) : int => 9 * ($level - 1) + 15,
194 50
195 ));
196 self::register("SILK_TOUCH", new Enchantment(
197 KnownTranslationFactory::enchantment_untouching(),
198 Rarity::MYTHIC,
199 0,
200 0,
201 1,
202 fn(int $level) : int => 15,
203 50
204 ));
205 self::register("UNBREAKING", new Enchantment(
206 KnownTranslationFactory::enchantment_durability(),
207 Rarity::UNCOMMON,
208 0,
209 0,
210 3,
211 fn(int $level) : int => 8 * ($level - 1) + 5,
212 50
213 ));
214
215 self::register("POWER", new Enchantment(
216 KnownTranslationFactory::enchantment_arrowDamage(),
217 Rarity::COMMON,
218 0,
219 0,
220 5,
221 fn(int $level) : int => 10 * ($level - 1) + 1,
222 15
223 ));
224 self::register("PUNCH", new Enchantment(
225 KnownTranslationFactory::enchantment_arrowKnockback(),
226 Rarity::RARE,
227 0,
228 0,
229 2,
230 fn(int $level) : int => 20 * ($level - 1) + 12,
231 25
232 ));
233 self::register("FLAME", new Enchantment(
234 KnownTranslationFactory::enchantment_arrowFire(),
235 Rarity::RARE,
236 0,
237 0,
238 1,
239 fn(int $level) : int => 20,
240 30
241 ));
242 self::register("INFINITY", new Enchantment(
243 KnownTranslationFactory::enchantment_arrowInfinite(),
244 Rarity::MYTHIC,
245 0,
246 0,
247 1,
248 fn(int $level) : int => 20,
249 30
250 ));
251
252 self::register("MENDING", new Enchantment(
253 KnownTranslationFactory::enchantment_mending(),
254 Rarity::RARE,
255 0,
256 0,
257 1,
258 fn(int $level) : int => 25,
259 50
260 ));
261
262 self::register("VANISHING", new Enchantment(
263 KnownTranslationFactory::enchantment_curse_vanishing(),
264 Rarity::MYTHIC,
265 0,
266 0,
267 1,
268 fn(int $level) : int => 25,
269 25
270 ));
271
272 self::register("SWIFT_SNEAK", new Enchantment(
273 KnownTranslationFactory::enchantment_swift_sneak(),
274 Rarity::MYTHIC,
275 0,
276 0,
277 3,
278 fn(int $level) : int => 10 * $level,
279 5
280 ));
281 }
282
283 protected function register(string $name, Enchantment $member) : void{
284 self::registerValue($name, $member);
285 }
286}