PocketMine-MP 5.39.1 git-1be3f83620f013523bb4d35535c6c0f842b54a6a
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 4,
48 0.75,
49 null,
50 fn(int $level) : int => 11 * ($level - 1) + 1,
51 20
52 ));
53 self::register("FIRE_PROTECTION", new ProtectionEnchantment(
54 KnownTranslationFactory::enchantment_protect_fire(),
55 Rarity::UNCOMMON,
56 4,
57 1.25,
58 [
59 EntityDamageEvent::CAUSE_FIRE,
60 EntityDamageEvent::CAUSE_FIRE_TICK,
61 EntityDamageEvent::CAUSE_LAVA
62 //TODO: check fireballs
63 ],
64 fn(int $level) : int => 8 * ($level - 1) + 10,
65 12
66 ));
67 self::register("FEATHER_FALLING", new ProtectionEnchantment(
68 KnownTranslationFactory::enchantment_protect_fall(),
69 Rarity::UNCOMMON,
70 4,
71 2.5,
72 [
73 EntityDamageEvent::CAUSE_FALL
74 ],
75 fn(int $level) : int => 6 * ($level - 1) + 5,
76 10
77 ));
78 self::register("BLAST_PROTECTION", new ProtectionEnchantment(
79 KnownTranslationFactory::enchantment_protect_explosion(),
80 Rarity::RARE,
81 4,
82 1.5,
83 [
84 EntityDamageEvent::CAUSE_BLOCK_EXPLOSION,
85 EntityDamageEvent::CAUSE_ENTITY_EXPLOSION
86 ],
87 fn(int $level) : int => 8 * ($level - 1) + 5,
88 12
89 ));
90 self::register("PROJECTILE_PROTECTION", new ProtectionEnchantment(
91 KnownTranslationFactory::enchantment_protect_projectile(),
92 Rarity::UNCOMMON,
93 4,
94 1.5,
95 [
96 EntityDamageEvent::CAUSE_PROJECTILE
97 ],
98 fn(int $level) : int => 6 * ($level - 1) + 3,
99 15
100 ));
101 self::register("THORNS", new Enchantment(
102 KnownTranslationFactory::enchantment_thorns(),
103 Rarity::MYTHIC,
104 3,
105 fn(int $level) : int => 20 * ($level - 1) + 10,
106 50
107 ));
108 self::register("RESPIRATION", new Enchantment(
109 KnownTranslationFactory::enchantment_oxygen(),
110 Rarity::RARE,
111 3,
112 fn(int $level) : int => 10 * $level,
113 30
114 ));
115
116 self::register("FROST_WALKER", new Enchantment(
117 KnownTranslationFactory::enchantment_frostwalker(),
118 Rarity::RARE,
119 2,
120 fn(int $level) : int => 10 * $level,
121 15
122 ));
123 self::register("AQUA_AFFINITY", new Enchantment(
124 KnownTranslationFactory::enchantment_waterWorker(),
125 Rarity::RARE,
126 1,
127 null,
128 40
129 ));
130
131 self::register("SHARPNESS", new SharpnessEnchantment(
132 KnownTranslationFactory::enchantment_damage_all(),
133 Rarity::COMMON,
134 5,
135 fn(int $level) : int => 11 * ($level - 1) + 1,
136 20
137 ));
138 self::register("KNOCKBACK", new KnockbackEnchantment(
139 KnownTranslationFactory::enchantment_knockback(),
140 Rarity::UNCOMMON,
141 2,
142 fn(int $level) : int => 20 * ($level - 1) + 5,
143 50
144 ));
145 self::register("FIRE_ASPECT", new FireAspectEnchantment(
146 KnownTranslationFactory::enchantment_fire(),
147 Rarity::RARE,
148 2,
149 fn(int $level) : int => 20 * ($level - 1) + 10,
150 50
151 ));
152 //TODO: smite, bane of arthropods, looting (these don't make sense now because their applicable mobs don't exist yet)
153
154 self::register("EFFICIENCY", new Enchantment(
155 KnownTranslationFactory::enchantment_digging(),
156 Rarity::COMMON,
157 5,
158 fn(int $level) : int => 10 * ($level - 1) + 1,
159 50
160 ));
161 self::register("FORTUNE", new Enchantment(
162 KnownTranslationFactory::enchantment_lootBonusDigger(),
163 Rarity::RARE,
164 3,
165 fn(int $level) : int => 9 * ($level - 1) + 15,
166 50
167 ));
168 self::register("SILK_TOUCH", new Enchantment(
169 KnownTranslationFactory::enchantment_untouching(),
170 Rarity::MYTHIC,
171 1,
172 fn(int $level) : int => 15,
173 50
174 ));
175 self::register("UNBREAKING", new Enchantment(
176 KnownTranslationFactory::enchantment_durability(),
177 Rarity::UNCOMMON,
178 3,
179 fn(int $level) : int => 8 * ($level - 1) + 5,
180 50
181 ));
182
183 self::register("POWER", new Enchantment(
184 KnownTranslationFactory::enchantment_arrowDamage(),
185 Rarity::COMMON,
186 5,
187 fn(int $level) : int => 10 * ($level - 1) + 1,
188 15
189 ));
190 self::register("PUNCH", new Enchantment(
191 KnownTranslationFactory::enchantment_arrowKnockback(),
192 Rarity::RARE,
193 2,
194 fn(int $level) : int => 20 * ($level - 1) + 12,
195 25
196 ));
197 self::register("FLAME", new Enchantment(
198 KnownTranslationFactory::enchantment_arrowFire(),
199 Rarity::RARE,
200 1,
201 fn(int $level) : int => 20,
202 30
203 ));
204 self::register("INFINITY", new Enchantment(
205 KnownTranslationFactory::enchantment_arrowInfinite(),
206 Rarity::MYTHIC,
207 1,
208 fn(int $level) : int => 20,
209 30
210 ));
211
212 self::register("MENDING", new Enchantment(
213 KnownTranslationFactory::enchantment_mending(),
214 Rarity::RARE,
215 1,
216 fn(int $level) : int => 25,
217 50
218 ));
219
220 self::register("VANISHING", new Enchantment(
221 KnownTranslationFactory::enchantment_curse_vanishing(),
222 Rarity::MYTHIC,
223 1,
224 fn(int $level) : int => 25,
225 25
226 ));
227
228 self::register("SWIFT_SNEAK", new Enchantment(
229 KnownTranslationFactory::enchantment_swift_sneak(),
230 Rarity::MYTHIC,
231 3,
232 fn(int $level) : int => 10 * $level,
233 5
234 ));
235 }
236
237 protected function register(string $name, Enchantment $member) : void{
238 self::registerValue($name, $member);
239 }
240}