1. The forums will be archived and moved to a read only mode in about 2 weeks (mid march).

Solved Hello.

Discussion in 'Help' started by firen, May 30, 2021.

  1. firen

    firen Spider

    Messages:
    14
    I'm having an error when testing a plugin in practice.

    The plugin is soup, when you take a soup, you get life back.

    However, when I take the soup, I simply leave the server with the error: "Internal error".

    Here is the error on the console:


    [Server thread/CRITICAL]: Error: "Call to undefined method pocketmine\entity\Effect::setAmplifier()" (EXCEPTION) in "plugins/148-OriginalSoup-9c964/src/Theobrz/Main" at line 33
    [20:56:18] [Server thread/CRITICAL]: #0 pmsrc/src/pocketmine/plugin/MethodEventExecutor(42): Theobrz\Main->onUse(object pocketmine\event\player\PlayerInteractEvent)
    [20:56:18] [Server thread/CRITICAL]: #1 pmsrc/src/pocketmine/plugin/RegisteredListener(80): pocketmine\plugin\MethodEventExecutor->execute(object Theobrz\Main, object pocketmine\event\player\PlayerInteractEvent)
    [20:56:18] [Server thread/CRITICAL]: #2 pmsrc/src/pocketmine/event/Event(88): pocketmine\plugin\RegisteredListener->callEvent(object pocketmine\event\player\PlayerInteractEvent)
    [20:56:18] [Server thread/CRITICAL]: #3 pmsrc/src/pocketmine/level/Level(1872): pocketmine\event\Event->call()
    [20:56:18] [Server thread/CRITICAL]: #4 pmsrc/src/pocketmine/Player(2560): pocketmine\level\Level->useItemOn(object pocketmine\math\Vector3, object pocketmine\item\Item, integer 1, object pocketmine\math\Vector3, object pocketmine\Player, boolean 1)
    [20:56:18] [Server thread/CRITICAL]: #5 pmsrc/src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(149): pocketmine\Player->handleInventoryTransaction(object pocketmine\network\mcpe\protocol\InventoryTransactionPacket)
    [20:56:18] [Server thread/CRITICAL]: #6 pmsrc/src/pocketmine/network/mcpe/protocol/InventoryTransactionPacket(106): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleInventoryTransaction(object pocketmine\network\mcpe\protocol\InventoryTransactionPacket)
    [20:56:18] [Server thread/CRITICAL]: #7 pmsrc/src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(109): pocketmine\network\mcpe\protocol\InventoryTransactionPacket->handle(object pocketmine\network\mcpe\PlayerNetworkSessionAdapter)
    [20:56:18] [Server thread/CRITICAL]: #8 pmsrc/src/pocketmine/network/mcpe/protocol/BatchPacket(130): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(object pocketmine\network\mcpe\protocol\InventoryTransactionPacket)
    [20:56:18] [Server thread/CRITICAL]: #9 pmsrc/src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(109): pocketmine\network\mcpe\protocol\BatchPacket->handle(object pocketmine\network\mcpe\PlayerNetworkSessionAdapter)
    [20:56:18] [Server thread/CRITICAL]: #10 pmsrc/src/pocketmine/Player(3311): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(object pocketmine\network\mcpe\protocol\BatchPacket)
    [20:56:18] [Server thread/CRITICAL]: #11 pmsrc/src/pocketmine/network/mcpe/RakLibInterface(169): pocketmine\Player->handleDataPacket(object pocketmine\network\mcpe\protocol\BatchPacket)
    [20:56:18] [Server thread/CRITICAL]: #12 pmsrc/vendor/pocketmine/raklib/src/server/ServerHandler(95): pocketmine\network\mcpe\RakLibInterface->handleEncapsulated(string[15] 127.0.0.1 58048, object raklib\protocol\EncapsulatedPacket, integer 0)
    [20:56:18] [Server thread/CRITICAL]: #13 pmsrc/src/pocketmine/network/mcpe/RakLibInterface(109): raklib\server\ServerHandler->handlePacket()
    [20:56:18] [Server thread/CRITICAL]: #14 pmsrc/src/pocketmine/network/mcpe/RakLibInterface(99): pocketmine\network\mcpe\RakLibInterface->process()
    [20:56:18] [Server thread/CRITICAL]: #15 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(113): pocketmine\network\mcpe\RakLibInterface->pocketmine\network\mcpe\{closure}()
    [20:56:18] [Server thread/CRITICAL]: #16 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(75): pocketmine\snooze\SleeperHandler->processNotifications()
    [20:56:18] [Server thread/CRITICAL]: #17 pmsrc/src/pocketmine/Server(2155): pocketmine\snooze\SleeperHandler->sleepUntil(double 1622350578.9661)
    [20:56:18] [Server thread/CRITICAL]: #18 pmsrc/src/pocketmine/Server(1992): pocketmine\Server->tickProcessor()
    [20:56:18] [Server thread/CRITICAL]: #19 pmsrc/src/pocketmine/Server(1586): pocketmine\Server->start()
    [20:56:18] [Server thread/CRITICAL]: #20 pmsrc/src/pocketmine/PocketMine(291): pocketmine\Server->__construct(object BaseClassLoader, object pocketmine\utils\MainLogger, string[33] C:\Users\poderoso\Desktop\Server\, string[41] C:\Users\poderoso\Desktop\Server\plugins\)
    [20:56:18] [Server thread/CRITICAL]: #21 pmsrc/src/pocketmine/PocketMine(321): pocketmine\server()
    [20:56:18] [Server thread/CRITICAL]: #22 pmsrc(11): require(string[88] phar://C:/Users/poderoso/Desktop/Server/PocketMine-MP.phar/src/pocketmine/Pocket)




    Plugin code:


    <?php

    namespace Theobrz;

    use pocketmine\plugin\PluginBase as Theobrz;
    use pocketmine\entity\Effect;
    use pocketmine\item\Item;
    use pocketmine\Player;
    use pocketmine\level\Level;
    use pocketmine\level\sound\ClickSound;
    use pocketmine\Server;
    use pocketmine\event\Listener;
    use pocketmine\plugin\PluginManager;
    use pocketmine\event\player\PlayerInteractEvent;

    class Main extends Theobrz implements Listener{

    public function onEnable(){
    $this->getServer()->getPluginManager()->registerEvents($this, $this);

    $this->getLogger()->info("§aO Plugin foi carregado Corretamente.");

    $this->getLogger()->info("§7Pluginby: §1Theobrz");

    }

    public function onUse(PlayerInteractEvent $event) {
    $player = $event->getPlayer();
    if(count($player->getEffects()) != 3) {
    if($event->getItem()->getID() == 282) {
    if($player->getHealth()<=19) {
    $player->setFood(20);
    $player->addEffect(Effect::getEffect(6)->setAmplifier(0)->setDuration(0)->setVisible(false));
    $player->getInventory()->removeItem(Item::get(282, 0, 1));
    $player->getInventory()->addItem(Item::get(281, 0, 1));
    $player = $event->getPlayer();
    $player->getlevel()->addSound(new ClickSound($player));
    }
    }
    }
    }
    }


    Main error for this plugin: "Error: "Call to undefined method pocketmine\entity\Effect::setAmplifier()" (EXCEPTION) in "plugins/148-OriginalSoup-9c964/src/Theobrz/Main" at line 33
     
  2. minijaham

    minijaham Skeleton

    Messages:
    801
    GitHub:
    minijaham
    Your code is outdated. You need to use EffectInstance to give the player effect.
     
    firen and Axon like this.
  3. Axon

    Axon Zombie

    Messages:
    276
    Example:
    PHP:
    $effect Effect::getEffect((int) 6); // 6 ID
    $duration 0// 0 Seconds of effect 6
    $amplification 0//  0 amp For effect 6
    $visible false// hide player effect or not
    $instance = new EffectInstance($effect$duration$amplification$visible); //Effect Instance
    $player->addEffect($instance); // Adds Effect
     
    Last edited: May 30, 2021
    Agent, firen and minijaham like this.
  4. firen

    firen Spider

    Messages:
    14
    Thx man!
     
    minijaham likes this.
  5. firen

    firen Spider

    Messages:
    14
    THXXX!
    I'ts worked!
     
    Axon likes this.
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.