56 $player = $this->fetchPermittedPlayerTarget($sender, $args[0], DefaultPermissionNames::COMMAND_EFFECT_SELF, DefaultPermissionNames::COMMAND_EFFECT_OTHER);
60 $effectManager = $player->getEffects();
62 if(strtolower($args[1]) ===
"clear"){
63 $effectManager->clear();
65 $sender->sendMessage(KnownTranslationFactory::commands_effect_success_removed_all($player->getDisplayName()));
69 $effect = StringToEffectParser::getInstance()->parse($args[1]);
71 $sender->sendMessage(KnownTranslationFactory::commands_effect_notFound($args[1])->prefix(TextFormat::RED));
78 if(count($args) >= 3){
79 if(strtolower($args[2]) ===
"infinite"){
83 if(($d = $this->getBoundedInt($sender, $args[2], 0, (
int) (Limits::INT32_MAX / 20))) ===
null){
92 if(count($args) >= 4){
93 $amplification = $this->getBoundedInt($sender, $args[3], 0, 255);
94 if($amplification ===
null){
100 if(count($args) >= 5){
101 $v = strtolower($args[4]);
102 if($v ===
"on" || $v ===
"true" || $v ===
"t" || $v ===
"1"){
108 if(!$effectManager->has($effect)){
109 if(count($effectManager->all()) === 0){
110 $sender->sendMessage(KnownTranslationFactory::commands_effect_failure_notActive_all($player->getDisplayName()));
112 $sender->sendMessage(KnownTranslationFactory::commands_effect_failure_notActive($effect->getName(), $player->getDisplayName()));
117 $effectManager->remove($effect);
118 $sender->sendMessage(KnownTranslationFactory::commands_effect_success_removed($effect->getName(), $player->getDisplayName()));
120 $instance =
new EffectInstance($effect, $duration, $amplification, $visible, infinite: $infinite);
121 $effectManager->add($instance);
124 self::broadcastCommandMessage($sender, KnownTranslationFactory::commands_effect_success_infinite($effect->getName(), (
string) $instance->getAmplifier(), $player->getDisplayName()));
126 self::broadcastCommandMessage($sender, KnownTranslationFactory::commands_effect_success($effect->getName(), (
string) $instance->getAmplifier(), $player->getDisplayName(), (
string) ($instance->getDuration() / 20)));