57 $player = $this->fetchPermittedPlayerTarget($commandLabel, $sender, $args[0], DefaultPermissionNames::COMMAND_EFFECT_SELF, DefaultPermissionNames::COMMAND_EFFECT_OTHER);
61 $effectManager = $player->getEffects();
63 if(strtolower($args[1]) ===
"clear"){
64 $effectManager->clear();
66 $sender->sendMessage(KnownTranslationFactory::commands_effect_success_removed_all($player->getDisplayName()));
70 $effect = StringToEffectParser::getInstance()->parse($args[1]);
72 $sender->sendMessage(KnownTranslationFactory::commands_effect_notFound($args[1])->prefix(TextFormat::RED));
79 if(count($args) >= 3){
80 if(strtolower($args[2]) ===
"infinite"){
84 if(($d = $this->getBoundedInt($sender, $args[2], 0, (
int) (Limits::INT32_MAX / 20))) ===
null){
93 if(count($args) >= 4){
94 $amplification = $this->getBoundedInt($sender, $args[3], 0, 255);
95 if($amplification ===
null){
101 if(count($args) >= 5){
102 $v = strtolower($args[4]);
103 if($v ===
"on" || $v ===
"true" || $v ===
"t" || $v ===
"1"){
109 if(!$effectManager->has($effect)){
110 if(count($effectManager->all()) === 0){
111 $sender->sendMessage(KnownTranslationFactory::commands_effect_failure_notActive_all($player->getDisplayName()));
113 $sender->sendMessage(KnownTranslationFactory::commands_effect_failure_notActive($effect->getName(), $player->getDisplayName()));
118 $effectManager->remove($effect);
119 $sender->sendMessage(KnownTranslationFactory::commands_effect_success_removed($effect->getName(), $player->getDisplayName()));
121 $instance =
new EffectInstance($effect, $duration, $amplification, $visible, infinite: $infinite);
122 $effectManager->add($instance);
125 self::broadcastCommandMessage($sender, KnownTranslationFactory::commands_effect_success_infinite($effect->getName(), (
string) $instance->getAmplifier(), $player->getDisplayName()));
127 self::broadcastCommandMessage($sender, KnownTranslationFactory::commands_effect_success($effect->getName(), (
string) $instance->getAmplifier(), $player->getDisplayName(), (
string) ($instance->getDuration() / 20)));