Solved Undefined property: pocketmine\Player::$getName

Discussion in 'Development' started by Saxavlax001, Jun 10, 2019.

  1. Saxavlax001

    Saxavlax001 Silverfish

    Messages:
    21
    GitHub:
    Saxavlax001
    Well,I'm trying to make a sizes cosmetics plugin and size commands work fine, and I want on PlayerInteractEvent to run a command as a player,but when I do $player->getName() ($player = $ev->getPlayer() ) it says :

    2019-06-09 [23:49:59] [Server thread/CRITICAL]: ErrorException: "Undefined property: pocketmine\Player::$getName" (EXCEPTION) in "src/pocketmine/entity/Entity" at line 2257
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #0 plugins/GoFightCore-master/src/gofightcore/hotbarmenu/HotbarMenu(139): pocketmine\entity\Entity->__get(string getName)
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #1 src/pocketmine/plugin/MethodEventExecutor(38): gofightcore\hotbarmenu\HotbarMenu->handleInteraction(pocketmine\event\player\PlayerInteractEvent object)
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #2 src/pocketmine/plugin/RegisteredListener(98): pocketmine\plugin\MethodEventExecutor->execute(gofightcore\hotbarmenu\HotbarMenu object, pocketmine\event\player\PlayerInteractEvent object)
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #3 src/pocketmine/event/Event(99): pocketmine\plugin\RegisteredListener->callEvent(pocketmine\event\player\PlayerInteractEvent object)
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #4 src/pocketmine/level/Level(1914): pocketmine\event\Event->call()
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #5 src/pocketmine/Player(2425): pocketmine\level\Level->useItemOn(pocketmine\math\Vector3 object, pocketmine\item\Item object, integer 1, pocketmine\math\Vector3 object, pocketmine\Player object, boolean 1)
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #6 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(149): pocketmine\Player->handleInventoryTransaction(pocketmine\network\mcpe\protocol\InventoryTransactionPacket object)
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #7 src/pocketmine/network/mcpe/protocol/InventoryTransactionPacket(158): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleInventoryTransaction(pocketmine\network\mcpe\protocol\InventoryTransactionPacket object)
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #8 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(109): pocketmine\network\mcpe\protocol\InventoryTransactionPacket->handle(pocketmine\network\mcpe\PlayerNetworkSessionAdapter object)
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #9 src/pocketmine/network/mcpe/protocol/BatchPacket(123): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(pocketmine\network\mcpe\protocol\InventoryTransactionPacket object)
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #10 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(109): pocketmine\network\mcpe\protocol\BatchPacket->handle(pocketmine\network\mcpe\PlayerNetworkSessionAdapter object)
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #11 src/pocketmine/Player(3124): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(pocketmine\network\mcpe\protocol\BatchPacket object)
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #12 src/pocketmine/network/mcpe/RakLibInterface(169): pocketmine\Player->handleDataPacket(pocketmine\network\mcpe\protocol\BatchPacket object)
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #13 vendor/pocketmine/raklib/src/server/ServerHandler(99): pocketmine\network\mcpe\RakLibInterface->handleEncapsulated(string 192.168.2.12 41996, raklib\protocol\EncapsulatedPacket object, integer 0)
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #14 src/pocketmine/network/mcpe/RakLibInterface(109): raklib\server\ServerHandler->handlePacket()
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #15 src/pocketmine/network/mcpe/RakLibInterface(99): pocketmine\network\mcpe\RakLibInterface->process()
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #16 vendor/pocketmine/snooze/src/SleeperHandler(123): pocketmine\network\mcpe\RakLibInterface->pocketmine\network\mcpe\{closure}()
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #17 vendor/pocketmine/snooze/src/SleeperHandler(85): pocketmine\snooze\SleeperHandler->processNotifications()
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #18 src/pocketmine/Server(2339): pocketmine\snooze\SleeperHandler->sleepUntil(double 1560095399.6366)
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #19 src/pocketmine/Server(2196): pocketmine\Server->tickProcessor()
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #20 src/pocketmine/Server(1775): pocketmine\Server->start()
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #21 src/pocketmine/PocketMine(266): pocketmine\Server->__construct(BaseClassLoader object, pocketmine\utils\MainLogger object, string /storage/emulated/0/PocketMine/, string /storage/emulated/0/PocketMine/plugins/)
    2019-06-09 [23:49:59] [Server thread/DEBUG]: #22 (1): require(string phar:///storage/emulated/0/PocketMine/PocketMine-MP.phar/src/pocketmine/PocketMine.php)
    2019-06-09 [23:49:59] [Server thread/INFO]: Makairosei left the game
    2019-06-09 [23:49:59] [Server thread/INFO]: Makairosei[/192.168.2.12:41996] logged out due to Internal server error
    2019-06-09 [23:49:59] [RakLibServer thread/NOTICE]: Blocked 192.168.2.12 for 5 seconds

    The file where the problem exists:
     
  2. Saxavlax001

    Saxavlax001 Silverfish

    Messages:
    21
    GitHub:
    Saxavlax001
    PHP:
    <?php

    namespace gofightcore\hotbarmenu;

    use 
    pocketmine\command\Command;
    use 
    pocketmine\command\ConsoleCommandSender;
    use 
    pocketmine\command\CommandSender;
    use 
    pocketmine\Player;
    use 
    pocketmine\Server;
    use 
    pocketmine\plugin\Plugin;
    use 
    pocketmine\event\Listener;
    use 
    pocketmine\item\Item;
    use 
    pcoketmine\plugin\PluginBase;
    use 
    pocketmine\utils\TextFormat;
    use 
    pocketmine\utils\Config;
    use 
    pocketmine\event\player\PlayerJoinEvent;
    use 
    pocketmine\event\player\PlayerRespawnEvent;
    use 
    pocketmine\event\entity\EntityLevelChangeEvent;
    use 
    pocketmine\event\player\PlayerInteractEvent;
    use 
    gofightcore\Main;
    use 
    gofightcore\hotbarmenu\PlayerHead;

    class 
    HotbarMenu extends Command implements Listener {

          private 
    $config;

        public function 
    __construct(Main $plugin) {
          
    parent::__construct("hotbarmenu""Gives you the hotbar menu.""Usage: /hotbarmenu", ["hotbarmenu"]);
       
    $this->setPermission('hotbarmenu.command');
        }

        public function 
    execute(CommandSender $senderstring $label, array $args) : bool
        
    {
        if(!
    $this->testPermission($sender)){
                return 
    true;
         }

         if (
    $sender instanceof Player) {
            
    $sender->getInventory()->clearAll();
            
    $sender->getInventory()->setItem(0PlayerHead::getPlayerHeadItem($sender->getSkin(), $sender->getName())->setCustomName("§6Your stats"));
            
    $sender->getInventory()->setItem(2Item::get(Item::PAPER31)->setCustomName("§7Info"));
            
    $sender->getInventory()->setItem(4Item::get(370,0,1)->setCustomName("§6Cosmetics"));
            
    $sender->getInventory()->setItem(8Item::get(Item::DYE101)->setCustomName("§bInvisible players"));
       return 
    true;
         }
         if (
    $sender instanceof ConsoleCommandSender) {
         
    $sender->sendMessage("Run this command in-game!");
      return 
    true;
      }
     }

        public function 
    onPlayerJoin(PlayerJoinEvent $ev) {
            
    $player $ev->getPlayer();
            
    $name $ev->getPlayer()->getName();
            
    $player->getInventory()->clearAll();
            
    $player->getInventory()->setItem(0PlayerHead::getPlayerHeadItem($player->getSkin(), $player->getName())->setCustomName("§6Your stats"));
            
    $player->getInventory()->setItem(2Item::get(Item::PAPER31)->setCustomName("§7Info"));
            
    $player->getInventory()->setItem(4Item::get(370,0,1)->setCustomName("§6Cosmetics"));
            
    $player->getInventory()->setItem(8Item::get(Item::DYE101)->setCustomName("§bInvisible players"));
       }

        public function 
    handleInteraction(PlayerInteractEvent $ev) {
            
    $player $ev->getPlayer();
            
    $inventory $player->getInventory();
            
    $hand $inventory->getItemInHand();
              
    //your stats
                 
    if($hand->getCustomName() == "§6Your stats"){
              
    $wsconfig = new Config("plugins/GoFightCore/stats/wins/wins.yml"Config::YAML);
              
    $ksconfig = new Config("plugins/GoFightCore/stats/kills/kills.yml"Config::YAML);
              
    $wsconfig->getAll();
              
    $ksconfig->getAll();
              
    $player->sendMessage("§6Your name: " $player->getName() . "\n §bSky§fWars §eWins: " $wsconfig->get($player->getName(), 0) ."\n §cKills: " $ksconfig->get($player->getName(), 0) . " ");
              }
            
    //info
            
    if($hand->getCustomName() == "§7Info"){
            
    $player->sendMessage("§7IP/Port: gofightnetwork.ddns.net/19132");
            
    $player->sendMessage("§eDiscord link: §bhttps://discord.gg/XswCmNA");
            }
          
    //cosmetics
                 
    if($hand->getCustomName() == "§6Cosmetics"){
            
    $player->getInventory()->clearAll();
            
    $inventory->setItem(0Item::get(280,0,1)->setCustomName("§6Lightning stick"));
            
    $inventory->setItem(2Item::get(280,0,1)->setCustomName("§6Knockback stick"));
            
    $inventory->setItem(3Item::get(420,0,1)->setCustomName("§6Sizes"));
            
    $inventory->setItem(4Item::get(280,0,1)->setCustomName("soon"));
            
    $inventory->setItem(5Item::get(280,0,1)->setCustomName("soob"));
            
    $inventory->setItem(6Item::get(264,0,1)->setCustomName("§6More cosmetics"));
            
    $inventory->setItem(8Item::get(Item::PAPER,0,1)->setCustomName("§cQuit cosmetics"));
              }
             
    //more cosmetics
                 
    if($hand->getCustomName() == "§6More cosmetics"){
            
    $player->getInventory()->clearAll();
            
    $inventory->setItem(0Item::get(280,0,1)->setCustomName("Lightning Stick"));
            
    $inventory->setItem(2Item::get(280,0,1)->setCustomName("Knockback Stick"));
            
    $inventory->setItem(3Item::get(280,0,1)->setCustomName("soon"));
            
    $inventory->setItem(4Item::get(280,0,1)->setCustomName("soon"));
            
    $inventory->setItem(5Item::get(280,0,1)->setCustomName("soon"));
            
    $inventory->setItem(6Item::get(270,0,1)->setCustomName("§6Cosmetics page1"));
            
    $inventory->setItem(8Item::get(Item::PAPER,0,1)->setCustomName("§cQuit cosmetics"));
              }
             
    //back to cosmetics
                 
    if($hand->getCustomName() == "§6Cosmetics page1"){
            
    $player->getInventory()->clearAll();
            
    $inventory->setItem(0Item::get(280,0,1)->setCustomName("Lightning stick"));
            
    $inventory->setItem(2Item::get(280,0,1)->setCustomName("Knockback stick"));
            
    $inventory->setItem(3Item::get(280,0,1)->setCustomName("Lightning Stick"));
            
    $inventory->setItem(4Item::get(280,0,1)->setCustomName("Lightning Stick"));
            
    $inventory->setItem(5Item::get(280,0,1)->setCustomName("Lightning Stick"));
            
    $inventory->setItem(6Item::get(264,0,1)->setCustomName("§6More cosmetics"));
            
    $inventory->setItem(8Item::get(Item::PAPER,0,1)->setCustomName("§cQuit cosmetics"));
              }
             
    //quit cosmetics
                 
    if($hand->getCustomName() == "§cQuit cosmetics"){
            
    $player->getInventory()->clearAll();
            
    $inventory->setItem(0PlayerHead::getPlayerHeadItem($player->getSkin(), $player->getName())->setCustomName("§6Your stats"));
            
    $inventory->setItem(2Item::get(Item::PAPER3)->setCustomName("§7Info"));
            
    $inventory->setItem(4Item::get(370,0,1)->setCustomName("§6Cosmetics"));
            
    $inventory->setItem(8Item::get(Item::DYE10)->setCustomName("§bInvisible players"));
            }
             
    //sizes
                 
    if($hand->getCustomName() == "§6Sizes"){
          if(
    $player->hasPermission("size.command") == true) {
            
    $player->getInventory()->clearAll();
            
    $inventory->setItem(0Item::get(420,0,1)->setCustomName("§eSmall"));
            
    $inventory->setItem(2Item::get(420,0,1)->setCustomName("§eNormal"));
            
    $inventory->setItem(3Item::get(420,0,1)->setCustomName("§eMedium"));
            
    $inventory->setItem(4Item::get(420,0,1)->setCustomName("§eBig"));
            
    $inventory->setItem(8Item::get(Item::PAPER,0,1)->setCustomName("§cQuit cosmetics"));
          
    $ev->setCancelled();
          }
          if(
    $player->hasPermission("size.command") == false) {
              
    $player->sendMessage("You need a Higher Rank to use this cosmetic.Buy Ranks on gofightnetworkshop.buycraft.net");
          }
          
    $ev->setCancelled();
         }

             
    //size small
                 
    if($hand->getCustomName() == "§eSmall"){
          
    $player $ev->getPlayer();
          
    Server::getInstance()->dispatchCommand(new $player"size 0.6");
         }

             
    //size normal
                 
    if($hand->getCustomName() == "§eNormal"){
            
    $player $ev->getPlayer();
            
    Server::getInstance()->dispatchCommand(new $player"size 1");
         }

             
    //size medium
                 
    if($hand->getCustomName() == "§eMedium"){
            
    $player $ev->getPlayer();
         
    Server::getInstance()->dispatchCommand(new $player"size 2.5");
         }
             
    //size big
                 
    if($hand->getCustomName() == "§eBig"){
               
    $player $ev->getPlayer();
               
    Server::getInstance()->dispatchCommand(new $player"size 4");
         }

           
    //invisible players
            
    if($hand->getCustomName() == "§bInvisible players"){
                        foreach (
    $player->getServer()->getOnlinePlayers() as $p) {
                            
    $player->hidePlayer($p);
                        }
                        
    $inventory->setItemInHand(Item::get(Item::DYE8)->setCustomName("§aVisible players"));
                       
    $title "§4Disable revealing";
                       
    $subtitle "§cDisabled!";
                       
    $player->addTitle($title$subtitle);
                     }
                  
    //visible players
                  
    if($hand->getCustomName() == "§aVisible players"){
                        foreach (
    $player->getServer()->getOnlinePlayers() as $p) {
                            
    $player->showPlayer($p);
                        }
                        
    $inventory->setItemInHand(Item::get(Item::DYE10)->setCustomName("§bInvisible players"));
             
    $title "§2Revealing all players";
             
    $subtitle "§aEnabled!";
             
    $player->addTitle($title$subtitle);
                    }
                  }

        public function 
    onRespawn(PlayerRespawnEvent $ev) {
            
    $player $ev->getPlayer();
            
    $inventory $player->getInventory();
            
    $player->getInventory()->clearAll();
            
    $inventory->setItem(0PlayerHead::getPlayerHeadItem($player->getSkin(), $player->getName())->setCustomName("§6Your stats"));
            
    $inventory->setItem(2Item::get(Item::PAPER01)->setCustomName("§7Info"));
            
    $inventory->setItem(4Item::get(370,0,1)->setCustomName("§6Cosmetics"));
            
    $inventory->setItem(8Item::get(Item::DYE101)->setCustomName("§bInvisible players"));
        }
    }
     
  3. Saxavlax001

    Saxavlax001 Silverfish

    Messages:
    21
    GitHub:
    Saxavlax001
    The Main Class:

    PHP:
    <?php

    namespace gofightcore;

    use 
    pocketmine\plugin\Plugin;
    use 
    pocketmine\plugin\PluginBase;
    use 
    pocketmine\Server;
    use 
    pocketmine\Player;
    use 
    pocketmine\entity\Entity;
    use 
    pocketmine\utils\Config;
    use 
    gofightcore\killmoney\KillMoney;
    use 
    gofightcore\hotbarmenu\PlayerHead;
    use 
    gofightcore\hotbarmenu\HeadEntity;
    use 
    gofightcore\stats\KillStats;
    use 
    gofightcore\stats\KBWinStats;
    use 
    gofightcore\stats\SWWinStats;
    use 
    gofightcore\hotbarmenu\HotbarMenu;
    use 
    gofightcore\serversshop\Open;
    use
    gofightcore\cosmeticsthings\LightningStick;
    use 
    gofightcore\cosmeticsthings\KnockbackStick;
    use
    gofightcore\cosmeticsthings\SizePlayer;

    class 
    Main extends PluginBase {

        public function 
    onEnable() : void
       
    {

        
    //check or make kill stats config
            
    @mkdir($this->getDataFolder());
            @
    mkdir($this->getDataFolder()."stats");
            @
    mkdir($this->getDataFolder()."stats/kills");
            
    $this->saveResource("killcfg.yml");
       
    //check or make sw win stats config
            
    @mkdir($this->getDataFolder());
            @
    mkdir($this->getDataFolder()."stats");
            @
    mkdir($this->getDataFolder()."stats/wins");
            
    $this->saveResource("swwincfg.yml");
       
    //check or make knockback game stats config
            
    @mkdir($this->getDataFolder());
            @
    mkdir($this->getDataFolder()."stats");
            @
    mkdir($this->getDataFolder()."stats/wins");
            
    $this->saveResource("kbwincfg.yml");
        
    //kbgame stats
        
    $this->getServer()->getPluginManager()->registerEvents(new KBWinStats($this), $this);
        
    $this->getServer()->getCommandMap()->register("settkbl", new KBWinStats($this));
        
    //kill stats
        
    $this->getServer()->getPluginManager()->registerEvents(new KillStats($this), $this);
        
    $this->getServer()->getCommandMap()->register("settkl", new KillStats($this));
        
    //win stats
        
    $this->getServer()->getPluginManager()->registerEvents(new SWWinStats($this), $this);
        
    $this->getServer()->getCommandMap()->register("setwlb", new SWWinStats($this));
        
    //serversshop
        
    $this->getServer()->getCommandMap()->register("openserversshop", new Open($this));
        
    $this->getServer()->getPluginManager()->registerEvents(new Open($this), $this);
        
    //hotbar menu
        
    $this->getServer()->getPluginManager()->registerEvents(new HotbarMenu($this), $this);
        
    $this->getServer()->getCommandMap()->register("hotbarmenu", new HotbarMenu($this));
        
    //cosmetic things
        
    $this->getServer()->getCommandMap()->register("lightningstick", new LightningStick($this));
        
    $this->getServer()->getPluginManager()->registerEvents(new LightningStick($this), $this); 
        
    $this->getServer()->getCommandMap()->register("knockbackstick", new KnockbackStick($this));
        
    $this->getServer()->getPluginManager()->registerEvents(new KnockbackStick($this), $this);
        
    //killmoney
        
    $this->getServer()->getPluginManager()->registerEvents(new KillMoney($this), $this);
        
    //player head stats item
        
    $this->getServer()->getPluginManager()->registerEvents(new PlayerHead($this), $this);
       
    Entity::registerEntity(HeadEntity::class, true, ['PlayerHead']);
        
    //sizeplayer
            
    $this->getServer()->getPluginManager()->registerEvents(new SizePlayer($this), $this);
            
    $this->getServer()->getCommandMap()->register("size", new SizePlayer($this));
            
    $this->dataFile = new Config($this->getDataFolder() . "data.yml"Config::YAML, ["version" => 1"sizes" => []]);
            
    $this->data $this->dataFile->getAll();
       }

        public function 
    saveData(){
            
    $this->dataFile->setAll($this->data);
            
    $this->dataFile->save();
        }
        
        public function 
    updateSize(Player $playerfloat $sizebool $save true): void{
            
    $this->data["sizes"][$player->getLowerCaseName()] = $size;
            
    $player->setScale($size);
            if(
    $save === true$this->saveData();
        }
            }
     
  4. Saxavlax001

    Saxavlax001 Silverfish

    Messages:
    21
    GitHub:
    Saxavlax001
    I didnt send all the files because I think that's useless,and the files are many.Also I tried many things to fix it,but I had errors again.
     
    Last edited: Jun 10, 2019
  5. KielKing

    KielKing Zombie

    Messages:
    241
    GitHub:
    kielking
    you are calling a property, I think you meant to call the function. Put parenthesis in the end like this, ()
     
  6. Saxavlax001

    Saxavlax001 Silverfish

    Messages:
    21
    GitHub:
    Saxavlax001
    PHP:
             //size small
                 
    if($hand->getCustomName() == "§eSmall"){
          
    $player $ev->getPlayer();
          
    Server::getInstance()->dispatchCommand(new $player->getName(), "size 0.6");
         }

             
    //size normal
                 
    if($hand->getCustomName() == "§eNormal"){
            
    $player $ev->getPlayer();
            
    Server::getInstance()->dispatchCommand(new $player->getName(), "size 1");
         }

             
    //size medium
                 
    if($hand->getCustomName() == "§eMedium"){
            
    $player $ev->getPlayer();
         
    Server::getInstance()->dispatchCommand(new $player->getName(), "size 2.5");
         }
             
    //size big
                 
    if($hand->getCustomName() == "§eBig"){
               
    $player $ev->getPlayer();
               
    Server::getInstance()->dispatchCommand(new $player->getName(), "size 4");
         }
     
  7. Saxavlax001

    Saxavlax001 Silverfish

    Messages:
    21
    GitHub:
    Saxavlax001
    I had tried that,but again I got the same error.
     
  8. MalakasPlayzMCPE

    MalakasPlayzMCPE Zombie Pigman

    Messages:
    654
    Server::getInstance()->dispatchCommand($player, "size 4");
     
  9. Saxavlax001

    Saxavlax001 Silverfish

    Messages:
    21
    GitHub:
    Saxavlax001
    When I do that,it says something about Player::construct,I'm coming.
     
  10. Saxavlax001

    Saxavlax001 Silverfish

    Messages:
    21
    GitHub:
    Saxavlax001
    [18:08:35] [Server thread/CRITICAL]: ArgumentCountError: "Too few arguments to function pocketmine\Player::__construct(), 0 passed in /storage/emulated/0/PocketMine/plugins/GoFightCore-master/src/gofightcore/hotbarmenu/HotbarMenu.php on line 140 and exactly 3 expected" (EXCEPTION) in "src/pocketmine/Player" at line 759
     
  11. Saxavlax001

    Saxavlax001 Silverfish

    Messages:
    21
    GitHub:
    Saxavlax001
    When I let it with $player
     
  12. KielKing

    KielKing Zombie

    Messages:
    241
    GitHub:
    kielking
    don't put ()
     
  13. MalakasPlayzMCPE

    MalakasPlayzMCPE Zombie Pigman

    Messages:
    654
    remove new and ()
     
  14. Saxavlax001

    Saxavlax001 Silverfish

    Messages:
    21
    GitHub:
    Saxavlax001
    Ok,it finally worked.Thanks!
     
    KielKing likes this.

Share This Page

  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.