Make Effect and Enchantment functions less verbose

This commit is contained in:
Dylan K. Taylor 2019-03-13 15:26:21 +00:00
parent 01904adf49
commit ad19696364
6 changed files with 105 additions and 105 deletions

View File

@ -69,10 +69,10 @@ class EffectCommand extends VanillaCommand{
return true; return true;
} }
$effect = Effect::getEffectByName($args[1]); $effect = Effect::fromString($args[1]);
if($effect === null){ if($effect === null){
$effect = Effect::getEffect((int) $args[1]); $effect = Effect::get((int) $args[1]);
} }
if($effect === null){ if($effect === null){

View File

@ -67,9 +67,9 @@ class EnchantCommand extends VanillaCommand{
} }
if(is_numeric($args[1])){ if(is_numeric($args[1])){
$enchantment = Enchantment::getEnchantment((int) $args[1]); $enchantment = Enchantment::get((int) $args[1]);
}else{ }else{
$enchantment = Enchantment::getEnchantmentByName($args[1]); $enchantment = Enchantment::fromString($args[1]);
} }
if(!($enchantment instanceof Enchantment)){ if(!($enchantment instanceof Enchantment)){

View File

@ -121,7 +121,7 @@ abstract class Living extends Entity implements Damageable{
$activeEffectsTag = $nbt->getListTag("ActiveEffects"); $activeEffectsTag = $nbt->getListTag("ActiveEffects");
if($activeEffectsTag !== null){ if($activeEffectsTag !== null){
foreach($activeEffectsTag as $e){ foreach($activeEffectsTag as $e){
$effect = Effect::getEffect($e->getByte("Id")); $effect = Effect::get($e->getByte("Id"));
if($effect === null){ if($effect === null){
continue; continue;
} }

View File

@ -64,144 +64,144 @@ class Effect{
protected static $effects = []; protected static $effects = [];
public static function init() : void{ public static function init() : void{
self::registerEffect(new SpeedEffect(Effect::SPEED, "%potion.moveSpeed", new Color(0x7c, 0xaf, 0xc6))); self::register(new SpeedEffect(Effect::SPEED, "%potion.moveSpeed", new Color(0x7c, 0xaf, 0xc6)));
self::registerEffect(new SlownessEffect(Effect::SLOWNESS, "%potion.moveSlowdown", new Color(0x5a, 0x6c, 0x81), true)); self::register(new SlownessEffect(Effect::SLOWNESS, "%potion.moveSlowdown", new Color(0x5a, 0x6c, 0x81), true));
self::registerEffect(new Effect(Effect::HASTE, "%potion.digSpeed", new Color(0xd9, 0xc0, 0x43))); self::register(new Effect(Effect::HASTE, "%potion.digSpeed", new Color(0xd9, 0xc0, 0x43)));
self::registerEffect(new Effect(Effect::MINING_FATIGUE, "%potion.digSlowDown", new Color(0x4a, 0x42, 0x17), true)); self::register(new Effect(Effect::MINING_FATIGUE, "%potion.digSlowDown", new Color(0x4a, 0x42, 0x17), true));
self::registerEffect(new Effect(Effect::STRENGTH, "%potion.damageBoost", new Color(0x93, 0x24, 0x23))); self::register(new Effect(Effect::STRENGTH, "%potion.damageBoost", new Color(0x93, 0x24, 0x23)));
self::registerEffect(new InstantHealthEffect(Effect::INSTANT_HEALTH, "%potion.heal", new Color(0xf8, 0x24, 0x23), false, false)); self::register(new InstantHealthEffect(Effect::INSTANT_HEALTH, "%potion.heal", new Color(0xf8, 0x24, 0x23), false, false));
self::registerEffect(new InstantDamageEffect(Effect::INSTANT_DAMAGE, "%potion.harm", new Color(0x43, 0x0a, 0x09), true, false)); self::register(new InstantDamageEffect(Effect::INSTANT_DAMAGE, "%potion.harm", new Color(0x43, 0x0a, 0x09), true, false));
self::registerEffect(new Effect(Effect::JUMP_BOOST, "%potion.jump", new Color(0x22, 0xff, 0x4c))); self::register(new Effect(Effect::JUMP_BOOST, "%potion.jump", new Color(0x22, 0xff, 0x4c)));
self::registerEffect(new Effect(Effect::NAUSEA, "%potion.confusion", new Color(0x55, 0x1d, 0x4a), true)); self::register(new Effect(Effect::NAUSEA, "%potion.confusion", new Color(0x55, 0x1d, 0x4a), true));
self::registerEffect(new RegenerationEffect(Effect::REGENERATION, "%potion.regeneration", new Color(0xcd, 0x5c, 0xab))); self::register(new RegenerationEffect(Effect::REGENERATION, "%potion.regeneration", new Color(0xcd, 0x5c, 0xab)));
self::registerEffect(new Effect(Effect::RESISTANCE, "%potion.resistance", new Color(0x99, 0x45, 0x3a))); self::register(new Effect(Effect::RESISTANCE, "%potion.resistance", new Color(0x99, 0x45, 0x3a)));
self::registerEffect(new Effect(Effect::FIRE_RESISTANCE, "%potion.fireResistance", new Color(0xe4, 0x9a, 0x3a))); self::register(new Effect(Effect::FIRE_RESISTANCE, "%potion.fireResistance", new Color(0xe4, 0x9a, 0x3a)));
self::registerEffect(new Effect(Effect::WATER_BREATHING, "%potion.waterBreathing", new Color(0x2e, 0x52, 0x99))); self::register(new Effect(Effect::WATER_BREATHING, "%potion.waterBreathing", new Color(0x2e, 0x52, 0x99)));
self::registerEffect(new InvisibilityEffect(Effect::INVISIBILITY, "%potion.invisibility", new Color(0x7f, 0x83, 0x92))); self::register(new InvisibilityEffect(Effect::INVISIBILITY, "%potion.invisibility", new Color(0x7f, 0x83, 0x92)));
self::registerEffect(new Effect(Effect::BLINDNESS, "%potion.blindness", new Color(0x1f, 0x1f, 0x23), true)); self::register(new Effect(Effect::BLINDNESS, "%potion.blindness", new Color(0x1f, 0x1f, 0x23), true));
self::registerEffect(new Effect(Effect::NIGHT_VISION, "%potion.nightVision", new Color(0x1f, 0x1f, 0xa1))); self::register(new Effect(Effect::NIGHT_VISION, "%potion.nightVision", new Color(0x1f, 0x1f, 0xa1)));
self::registerEffect(new HungerEffect(Effect::HUNGER, "%potion.hunger", new Color(0x58, 0x76, 0x53), true)); self::register(new HungerEffect(Effect::HUNGER, "%potion.hunger", new Color(0x58, 0x76, 0x53), true));
self::registerEffect(new Effect(Effect::WEAKNESS, "%potion.weakness", new Color(0x48, 0x4d, 0x48), true)); self::register(new Effect(Effect::WEAKNESS, "%potion.weakness", new Color(0x48, 0x4d, 0x48), true));
self::registerEffect(new PoisonEffect(Effect::POISON, "%potion.poison", new Color(0x4e, 0x93, 0x31), true)); self::register(new PoisonEffect(Effect::POISON, "%potion.poison", new Color(0x4e, 0x93, 0x31), true));
self::registerEffect(new WitherEffect(Effect::WITHER, "%potion.wither", new Color(0x35, 0x2a, 0x27), true)); self::register(new WitherEffect(Effect::WITHER, "%potion.wither", new Color(0x35, 0x2a, 0x27), true));
self::registerEffect(new HealthBoostEffect(Effect::HEALTH_BOOST, "%potion.healthBoost", new Color(0xf8, 0x7d, 0x23))); self::register(new HealthBoostEffect(Effect::HEALTH_BOOST, "%potion.healthBoost", new Color(0xf8, 0x7d, 0x23)));
self::registerEffect(new AbsorptionEffect(Effect::ABSORPTION, "%potion.absorption", new Color(0x25, 0x52, 0xa5))); self::register(new AbsorptionEffect(Effect::ABSORPTION, "%potion.absorption", new Color(0x25, 0x52, 0xa5)));
self::registerEffect(new SaturationEffect(Effect::SATURATION, "%potion.saturation", new Color(0xf8, 0x24, 0x23), false)); self::register(new SaturationEffect(Effect::SATURATION, "%potion.saturation", new Color(0xf8, 0x24, 0x23), false));
self::registerEffect(new LevitationEffect(Effect::LEVITATION, "%potion.levitation", new Color(0xce, 0xff, 0xff))); self::register(new LevitationEffect(Effect::LEVITATION, "%potion.levitation", new Color(0xce, 0xff, 0xff)));
self::registerEffect(new PoisonEffect(Effect::FATAL_POISON, "%potion.poison", new Color(0x4e, 0x93, 0x31), true, true, true)); self::register(new PoisonEffect(Effect::FATAL_POISON, "%potion.poison", new Color(0x4e, 0x93, 0x31), true, true, true));
self::registerEffect(new Effect(Effect::CONDUIT_POWER, "%potion.conduitPower", new Color(0x1d, 0xc2, 0xd1))); self::register(new Effect(Effect::CONDUIT_POWER, "%potion.conduitPower", new Color(0x1d, 0xc2, 0xd1)));
} }
/* auto-generated code */ /* auto-generated code */
public static function ABSORPTION() : Effect{ public static function ABSORPTION() : Effect{
return self::getEffect(Effect::ABSORPTION); return self::get(Effect::ABSORPTION);
} }
public static function BLINDNESS() : Effect{ public static function BLINDNESS() : Effect{
return self::getEffect(Effect::BLINDNESS); return self::get(Effect::BLINDNESS);
} }
public static function CONDUIT_POWER() : Effect{ public static function CONDUIT_POWER() : Effect{
return self::getEffect(Effect::CONDUIT_POWER); return self::get(Effect::CONDUIT_POWER);
} }
public static function FATAL_POISON() : Effect{ public static function FATAL_POISON() : Effect{
return self::getEffect(Effect::FATAL_POISON); return self::get(Effect::FATAL_POISON);
} }
public static function FIRE_RESISTANCE() : Effect{ public static function FIRE_RESISTANCE() : Effect{
return self::getEffect(Effect::FIRE_RESISTANCE); return self::get(Effect::FIRE_RESISTANCE);
} }
public static function HASTE() : Effect{ public static function HASTE() : Effect{
return self::getEffect(Effect::HASTE); return self::get(Effect::HASTE);
} }
public static function HEALTH_BOOST() : Effect{ public static function HEALTH_BOOST() : Effect{
return self::getEffect(Effect::HEALTH_BOOST); return self::get(Effect::HEALTH_BOOST);
} }
public static function HUNGER() : Effect{ public static function HUNGER() : Effect{
return self::getEffect(Effect::HUNGER); return self::get(Effect::HUNGER);
} }
public static function INSTANT_DAMAGE() : Effect{ public static function INSTANT_DAMAGE() : Effect{
return self::getEffect(Effect::INSTANT_DAMAGE); return self::get(Effect::INSTANT_DAMAGE);
} }
public static function INSTANT_HEALTH() : Effect{ public static function INSTANT_HEALTH() : Effect{
return self::getEffect(Effect::INSTANT_HEALTH); return self::get(Effect::INSTANT_HEALTH);
} }
public static function INVISIBILITY() : Effect{ public static function INVISIBILITY() : Effect{
return self::getEffect(Effect::INVISIBILITY); return self::get(Effect::INVISIBILITY);
} }
public static function JUMP_BOOST() : Effect{ public static function JUMP_BOOST() : Effect{
return self::getEffect(Effect::JUMP_BOOST); return self::get(Effect::JUMP_BOOST);
} }
public static function LEVITATION() : Effect{ public static function LEVITATION() : Effect{
return self::getEffect(Effect::LEVITATION); return self::get(Effect::LEVITATION);
} }
public static function MINING_FATIGUE() : Effect{ public static function MINING_FATIGUE() : Effect{
return self::getEffect(Effect::MINING_FATIGUE); return self::get(Effect::MINING_FATIGUE);
} }
public static function NAUSEA() : Effect{ public static function NAUSEA() : Effect{
return self::getEffect(Effect::NAUSEA); return self::get(Effect::NAUSEA);
} }
public static function NIGHT_VISION() : Effect{ public static function NIGHT_VISION() : Effect{
return self::getEffect(Effect::NIGHT_VISION); return self::get(Effect::NIGHT_VISION);
} }
public static function POISON() : Effect{ public static function POISON() : Effect{
return self::getEffect(Effect::POISON); return self::get(Effect::POISON);
} }
public static function REGENERATION() : Effect{ public static function REGENERATION() : Effect{
return self::getEffect(Effect::REGENERATION); return self::get(Effect::REGENERATION);
} }
public static function RESISTANCE() : Effect{ public static function RESISTANCE() : Effect{
return self::getEffect(Effect::RESISTANCE); return self::get(Effect::RESISTANCE);
} }
public static function SATURATION() : Effect{ public static function SATURATION() : Effect{
return self::getEffect(Effect::SATURATION); return self::get(Effect::SATURATION);
} }
public static function SLOWNESS() : Effect{ public static function SLOWNESS() : Effect{
return self::getEffect(Effect::SLOWNESS); return self::get(Effect::SLOWNESS);
} }
public static function SPEED() : Effect{ public static function SPEED() : Effect{
return self::getEffect(Effect::SPEED); return self::get(Effect::SPEED);
} }
public static function STRENGTH() : Effect{ public static function STRENGTH() : Effect{
return self::getEffect(Effect::STRENGTH); return self::get(Effect::STRENGTH);
} }
public static function WATER_BREATHING() : Effect{ public static function WATER_BREATHING() : Effect{
return self::getEffect(Effect::WATER_BREATHING); return self::get(Effect::WATER_BREATHING);
} }
public static function WEAKNESS() : Effect{ public static function WEAKNESS() : Effect{
return self::getEffect(Effect::WEAKNESS); return self::get(Effect::WEAKNESS);
} }
public static function WITHER() : Effect{ public static function WITHER() : Effect{
return self::getEffect(Effect::WITHER); return self::get(Effect::WITHER);
} }
/** /**
* @param Effect $effect * @param Effect $effect
*/ */
public static function registerEffect(Effect $effect) : void{ public static function register(Effect $effect) : void{
self::$effects[$effect->getId()] = $effect; self::$effects[$effect->getId()] = $effect;
} }
@ -210,7 +210,7 @@ class Effect{
* *
* @return Effect|null * @return Effect|null
*/ */
public static function getEffect(int $id) : ?Effect{ public static function get(int $id) : ?Effect{
return self::$effects[$id] ?? null; return self::$effects[$id] ?? null;
} }
@ -219,10 +219,10 @@ class Effect{
* *
* @return Effect|null * @return Effect|null
*/ */
public static function getEffectByName(string $name) : ?Effect{ public static function fromString(string $name) : ?Effect{
$const = self::class . "::" . strtoupper($name); $const = self::class . "::" . strtoupper($name);
if(defined($const)){ if(defined($const)){
return self::getEffect(constant($const)); return self::get(constant($const));
} }
return null; return null;
} }

View File

@ -260,7 +260,7 @@ class Item implements ItemIds, \JsonSerializable{
/** @var CompoundTag $entry */ /** @var CompoundTag $entry */
foreach($ench as $entry){ foreach($ench as $entry){
if($entry->getShort("id") === $id){ if($entry->getShort("id") === $id){
$e = Enchantment::getEnchantment($entry->getShort("id")); $e = Enchantment::get($entry->getShort("id"));
if($e !== null){ if($e !== null){
return new EnchantmentInstance($e, $entry->getShort("lvl")); return new EnchantmentInstance($e, $entry->getShort("lvl"));
} }
@ -353,7 +353,7 @@ class Item implements ItemIds, \JsonSerializable{
if($ench instanceof ListTag){ if($ench instanceof ListTag){
/** @var CompoundTag $entry */ /** @var CompoundTag $entry */
foreach($ench as $entry){ foreach($ench as $entry){
$e = Enchantment::getEnchantment($entry->getShort("id")); $e = Enchantment::get($entry->getShort("id"));
if($e !== null){ if($e !== null){
$enchantments[] = new EnchantmentInstance($e, $entry->getShort("lvl")); $enchantments[] = new EnchantmentInstance($e, $entry->getShort("lvl"));
} }

View File

@ -100,120 +100,120 @@ class Enchantment{
public static function init() : void{ public static function init() : void{
self::$enchantments = new \SplFixedArray(256); self::$enchantments = new \SplFixedArray(256);
self::registerEnchantment(new ProtectionEnchantment(self::PROTECTION, "%enchantment.protect.all", self::RARITY_COMMON, self::SLOT_ARMOR, self::SLOT_NONE, 4, 0.75, null)); self::register(new ProtectionEnchantment(self::PROTECTION, "%enchantment.protect.all", self::RARITY_COMMON, self::SLOT_ARMOR, self::SLOT_NONE, 4, 0.75, null));
self::registerEnchantment(new ProtectionEnchantment(self::FIRE_PROTECTION, "%enchantment.protect.fire", self::RARITY_UNCOMMON, self::SLOT_ARMOR, self::SLOT_NONE, 4, 1.25, [ self::register(new ProtectionEnchantment(self::FIRE_PROTECTION, "%enchantment.protect.fire", self::RARITY_UNCOMMON, self::SLOT_ARMOR, self::SLOT_NONE, 4, 1.25, [
EntityDamageEvent::CAUSE_FIRE, EntityDamageEvent::CAUSE_FIRE,
EntityDamageEvent::CAUSE_FIRE_TICK, EntityDamageEvent::CAUSE_FIRE_TICK,
EntityDamageEvent::CAUSE_LAVA EntityDamageEvent::CAUSE_LAVA
//TODO: check fireballs //TODO: check fireballs
])); ]));
self::registerEnchantment(new ProtectionEnchantment(self::FEATHER_FALLING, "%enchantment.protect.fall", self::RARITY_UNCOMMON, self::SLOT_FEET, self::SLOT_NONE, 4, 2.5, [ self::register(new ProtectionEnchantment(self::FEATHER_FALLING, "%enchantment.protect.fall", self::RARITY_UNCOMMON, self::SLOT_FEET, self::SLOT_NONE, 4, 2.5, [
EntityDamageEvent::CAUSE_FALL EntityDamageEvent::CAUSE_FALL
])); ]));
self::registerEnchantment(new ProtectionEnchantment(self::BLAST_PROTECTION, "%enchantment.protect.explosion", self::RARITY_RARE, self::SLOT_ARMOR, self::SLOT_NONE, 4, 1.5, [ self::register(new ProtectionEnchantment(self::BLAST_PROTECTION, "%enchantment.protect.explosion", self::RARITY_RARE, self::SLOT_ARMOR, self::SLOT_NONE, 4, 1.5, [
EntityDamageEvent::CAUSE_BLOCK_EXPLOSION, EntityDamageEvent::CAUSE_BLOCK_EXPLOSION,
EntityDamageEvent::CAUSE_ENTITY_EXPLOSION EntityDamageEvent::CAUSE_ENTITY_EXPLOSION
])); ]));
self::registerEnchantment(new ProtectionEnchantment(self::PROJECTILE_PROTECTION, "%enchantment.protect.projectile", self::RARITY_UNCOMMON, self::SLOT_ARMOR, self::SLOT_NONE, 4, 1.5, [ self::register(new ProtectionEnchantment(self::PROJECTILE_PROTECTION, "%enchantment.protect.projectile", self::RARITY_UNCOMMON, self::SLOT_ARMOR, self::SLOT_NONE, 4, 1.5, [
EntityDamageEvent::CAUSE_PROJECTILE EntityDamageEvent::CAUSE_PROJECTILE
])); ]));
self::registerEnchantment(new Enchantment(self::THORNS, "%enchantment.thorns", self::RARITY_MYTHIC, self::SLOT_TORSO, self::SLOT_HEAD | self::SLOT_LEGS | self::SLOT_FEET, 3)); self::register(new Enchantment(self::THORNS, "%enchantment.thorns", self::RARITY_MYTHIC, self::SLOT_TORSO, self::SLOT_HEAD | self::SLOT_LEGS | self::SLOT_FEET, 3));
self::registerEnchantment(new Enchantment(self::RESPIRATION, "%enchantment.oxygen", self::RARITY_RARE, self::SLOT_HEAD, self::SLOT_NONE, 3)); self::register(new Enchantment(self::RESPIRATION, "%enchantment.oxygen", self::RARITY_RARE, self::SLOT_HEAD, self::SLOT_NONE, 3));
self::registerEnchantment(new SharpnessEnchantment(self::SHARPNESS, "%enchantment.damage.all", self::RARITY_COMMON, self::SLOT_SWORD, self::SLOT_AXE, 5)); self::register(new SharpnessEnchantment(self::SHARPNESS, "%enchantment.damage.all", self::RARITY_COMMON, self::SLOT_SWORD, self::SLOT_AXE, 5));
//TODO: smite, bane of arthropods (these don't make sense now because their applicable mobs don't exist yet) //TODO: smite, bane of arthropods (these don't make sense now because their applicable mobs don't exist yet)
self::registerEnchantment(new KnockbackEnchantment(self::KNOCKBACK, "%enchantment.knockback", self::RARITY_UNCOMMON, self::SLOT_SWORD, self::SLOT_NONE, 2)); self::register(new KnockbackEnchantment(self::KNOCKBACK, "%enchantment.knockback", self::RARITY_UNCOMMON, self::SLOT_SWORD, self::SLOT_NONE, 2));
self::registerEnchantment(new FireAspectEnchantment(self::FIRE_ASPECT, "%enchantment.fire", self::RARITY_RARE, self::SLOT_SWORD, self::SLOT_NONE, 2)); self::register(new FireAspectEnchantment(self::FIRE_ASPECT, "%enchantment.fire", self::RARITY_RARE, self::SLOT_SWORD, self::SLOT_NONE, 2));
self::registerEnchantment(new Enchantment(self::EFFICIENCY, "%enchantment.digging", self::RARITY_COMMON, self::SLOT_DIG, self::SLOT_SHEARS, 5)); self::register(new Enchantment(self::EFFICIENCY, "%enchantment.digging", self::RARITY_COMMON, self::SLOT_DIG, self::SLOT_SHEARS, 5));
self::registerEnchantment(new Enchantment(self::SILK_TOUCH, "%enchantment.untouching", self::RARITY_MYTHIC, self::SLOT_DIG, self::SLOT_SHEARS, 1)); self::register(new Enchantment(self::SILK_TOUCH, "%enchantment.untouching", self::RARITY_MYTHIC, self::SLOT_DIG, self::SLOT_SHEARS, 1));
self::registerEnchantment(new Enchantment(self::UNBREAKING, "%enchantment.durability", self::RARITY_UNCOMMON, self::SLOT_DIG | self::SLOT_ARMOR | self::SLOT_FISHING_ROD | self::SLOT_BOW, self::SLOT_TOOL | self::SLOT_CARROT_STICK | self::SLOT_ELYTRA, 3)); self::register(new Enchantment(self::UNBREAKING, "%enchantment.durability", self::RARITY_UNCOMMON, self::SLOT_DIG | self::SLOT_ARMOR | self::SLOT_FISHING_ROD | self::SLOT_BOW, self::SLOT_TOOL | self::SLOT_CARROT_STICK | self::SLOT_ELYTRA, 3));
self::registerEnchantment(new Enchantment(self::POWER, "%enchantment.arrowDamage", self::RARITY_COMMON, self::SLOT_BOW, self::SLOT_NONE, 5)); self::register(new Enchantment(self::POWER, "%enchantment.arrowDamage", self::RARITY_COMMON, self::SLOT_BOW, self::SLOT_NONE, 5));
self::registerEnchantment(new Enchantment(self::PUNCH, "%enchantment.arrowKnockback", self::RARITY_RARE, self::SLOT_BOW, self::SLOT_NONE, 2)); self::register(new Enchantment(self::PUNCH, "%enchantment.arrowKnockback", self::RARITY_RARE, self::SLOT_BOW, self::SLOT_NONE, 2));
self::registerEnchantment(new Enchantment(self::FLAME, "%enchantment.arrowFire", self::RARITY_RARE, self::SLOT_BOW, self::SLOT_NONE, 1)); self::register(new Enchantment(self::FLAME, "%enchantment.arrowFire", self::RARITY_RARE, self::SLOT_BOW, self::SLOT_NONE, 1));
self::registerEnchantment(new Enchantment(self::INFINITY, "%enchantment.arrowInfinite", self::RARITY_MYTHIC, self::SLOT_BOW, self::SLOT_NONE, 1)); self::register(new Enchantment(self::INFINITY, "%enchantment.arrowInfinite", self::RARITY_MYTHIC, self::SLOT_BOW, self::SLOT_NONE, 1));
self::registerEnchantment(new Enchantment(self::MENDING, "%enchantment.mending", self::RARITY_RARE, self::SLOT_NONE, self::SLOT_ALL, 1)); self::register(new Enchantment(self::MENDING, "%enchantment.mending", self::RARITY_RARE, self::SLOT_NONE, self::SLOT_ALL, 1));
self::registerEnchantment(new Enchantment(self::VANISHING, "%enchantment.curse.vanishing", self::RARITY_MYTHIC, self::SLOT_NONE, self::SLOT_ALL, 1)); self::register(new Enchantment(self::VANISHING, "%enchantment.curse.vanishing", self::RARITY_MYTHIC, self::SLOT_NONE, self::SLOT_ALL, 1));
} }
public static function BLAST_PROTECTION() : Enchantment{ public static function BLAST_PROTECTION() : Enchantment{
return self::getEnchantment(self::BLAST_PROTECTION); return self::get(self::BLAST_PROTECTION);
} }
public static function EFFICIENCY() : Enchantment{ public static function EFFICIENCY() : Enchantment{
return self::getEnchantment(self::EFFICIENCY); return self::get(self::EFFICIENCY);
} }
public static function FEATHER_FALLING() : Enchantment{ public static function FEATHER_FALLING() : Enchantment{
return self::getEnchantment(self::FEATHER_FALLING); return self::get(self::FEATHER_FALLING);
} }
public static function FIRE_ASPECT() : Enchantment{ public static function FIRE_ASPECT() : Enchantment{
return self::getEnchantment(self::FIRE_ASPECT); return self::get(self::FIRE_ASPECT);
} }
public static function FIRE_PROTECTION() : Enchantment{ public static function FIRE_PROTECTION() : Enchantment{
return self::getEnchantment(self::FIRE_PROTECTION); return self::get(self::FIRE_PROTECTION);
} }
public static function FLAME() : Enchantment{ public static function FLAME() : Enchantment{
return self::getEnchantment(self::FLAME); return self::get(self::FLAME);
} }
public static function INFINITY() : Enchantment{ public static function INFINITY() : Enchantment{
return self::getEnchantment(self::INFINITY); return self::get(self::INFINITY);
} }
public static function KNOCKBACK() : Enchantment{ public static function KNOCKBACK() : Enchantment{
return self::getEnchantment(self::KNOCKBACK); return self::get(self::KNOCKBACK);
} }
public static function MENDING() : Enchantment{ public static function MENDING() : Enchantment{
return self::getEnchantment(self::MENDING); return self::get(self::MENDING);
} }
public static function POWER() : Enchantment{ public static function POWER() : Enchantment{
return self::getEnchantment(self::POWER); return self::get(self::POWER);
} }
public static function PROJECTILE_PROTECTION() : Enchantment{ public static function PROJECTILE_PROTECTION() : Enchantment{
return self::getEnchantment(self::PROJECTILE_PROTECTION); return self::get(self::PROJECTILE_PROTECTION);
} }
public static function PROTECTION() : Enchantment{ public static function PROTECTION() : Enchantment{
return self::getEnchantment(self::PROTECTION); return self::get(self::PROTECTION);
} }
public static function PUNCH() : Enchantment{ public static function PUNCH() : Enchantment{
return self::getEnchantment(self::PUNCH); return self::get(self::PUNCH);
} }
public static function RESPIRATION() : Enchantment{ public static function RESPIRATION() : Enchantment{
return self::getEnchantment(self::RESPIRATION); return self::get(self::RESPIRATION);
} }
public static function SHARPNESS() : Enchantment{ public static function SHARPNESS() : Enchantment{
return self::getEnchantment(self::SHARPNESS); return self::get(self::SHARPNESS);
} }
public static function SILK_TOUCH() : Enchantment{ public static function SILK_TOUCH() : Enchantment{
return self::getEnchantment(self::SILK_TOUCH); return self::get(self::SILK_TOUCH);
} }
public static function THORNS() : Enchantment{ public static function THORNS() : Enchantment{
return self::getEnchantment(self::THORNS); return self::get(self::THORNS);
} }
public static function UNBREAKING() : Enchantment{ public static function UNBREAKING() : Enchantment{
return self::getEnchantment(self::UNBREAKING); return self::get(self::UNBREAKING);
} }
public static function VANISHING() : Enchantment{ public static function VANISHING() : Enchantment{
return self::getEnchantment(self::VANISHING); return self::get(self::VANISHING);
} }
/** /**
@ -221,7 +221,7 @@ class Enchantment{
* *
* @param Enchantment $enchantment * @param Enchantment $enchantment
*/ */
public static function registerEnchantment(Enchantment $enchantment) : void{ public static function register(Enchantment $enchantment) : void{
self::$enchantments[$enchantment->getId()] = clone $enchantment; self::$enchantments[$enchantment->getId()] = clone $enchantment;
} }
@ -230,7 +230,7 @@ class Enchantment{
* *
* @return Enchantment|null * @return Enchantment|null
*/ */
public static function getEnchantment(int $id) : ?Enchantment{ public static function get(int $id) : ?Enchantment{
return self::$enchantments[$id] ?? null; return self::$enchantments[$id] ?? null;
} }
@ -239,10 +239,10 @@ class Enchantment{
* *
* @return Enchantment|null * @return Enchantment|null
*/ */
public static function getEnchantmentByName(string $name) : ?Enchantment{ public static function fromString(string $name) : ?Enchantment{
$const = Enchantment::class . "::" . strtoupper($name); $const = Enchantment::class . "::" . strtoupper($name);
if(defined($const)){ if(defined($const)){
return self::getEnchantment(constant($const)); return self::get(constant($const));
} }
return null; return null;
} }