VERY IMPORTANT - Bug with portfolio access
## Description When a contract player's portfolio contains a contract owned by a player who didn't connect since the last server starting, the portfolio menu is blocked at the first view and try to go at another view do nothing et display an error in console. ## How to reproduce 1. Take the contract of a player 2. Restart the server 3. Try to access at one of the non default views ## Informations Plugin version : 1.2.6 ## Annex The error : ``` [17:49:40 WARN]: [Contracts] Task #5075 for Contracts v1.6.2 generated an exception java.lang.NullPointerException: Cannot invoke "Object.toString()" because "<parameter2>" is null at fr.phoenix.contracts.gui.objects.item.Placeholders.register(Placeholders.java:20) ~[Contracts-1.6.2.jar:?] at fr.phoenix.contracts.contract.Contract.lambda$getContractPlaceholder$37(Contract.java:800) ~[Contracts-1.6.2.jar:?] at fr.phoenix.contracts.player.PlayerData.loadAndRun(PlayerData.java:248) ~[Contracts-1.6.2.jar:?] at fr.phoenix.contracts.contract.Contract.getContractPlaceholder(Contract.java:799) ~[Contracts-1.6.2.jar:?] at fr.phoenix.contracts.gui.ContractPortfolioViewer$ContractItem.getPlaceholders(ContractPortfolioViewer.java:142) ~[Contracts-1.6.2.jar:?] at fr.phoenix.contracts.gui.ContractPortfolioViewer$ContractItem.getPlaceholders(ContractPortfolioViewer.java:86) ~[Contracts-1.6.2.jar:?] at fr.phoenix.contracts.gui.ContractPortfolioViewer$ResolvedContractItem.getPlaceholders(ContractPortfolioViewer.java:197) ~[Contracts-1.6.2.jar:?] at fr.phoenix.contracts.gui.ContractPortfolioViewer$ResolvedContractItem.getPlaceholders(ContractPortfolioViewer.java:189) ~[Contracts-1.6.2.jar:?] at fr.phoenix.contracts.gui.objects.item.InventoryItem.getDisplayedItem(InventoryItem.java:148) ~[Contracts-1.6.2.jar:?] at fr.phoenix.contracts.gui.objects.item.InventoryItem.getDisplayedItem(InventoryItem.java:137) ~[Contracts-1.6.2.jar:?] at fr.phoenix.contracts.gui.ContractPortfolioViewer$ContractItem.getDisplayedItem(ContractPortfolioViewer.java:130) ~[Contracts-1.6.2.jar:?] at fr.phoenix.contracts.gui.ContractPortfolioViewer$ContractItem.getDisplayedItem(ContractPortfolioViewer.java:86) ~[Contracts-1.6.2.jar:?] at fr.phoenix.contracts.gui.objects.item.InventoryItem.display(InventoryItem.java:117) ~[Contracts-1.6.2.jar:?] at fr.phoenix.contracts.gui.objects.GeneratedInventory.getInventory(GeneratedInventory.java:86) ~[Contracts-1.6.2.jar:?] at fr.phoenix.contracts.gui.objects.GeneratedInventory.lambda$open$0(GeneratedInventory.java:105) ~[Contracts-1.6.2.jar:?] at org.bukkit.craftbukkit.v1_20_R2.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.20.2.jar:git-Paper-307] at org.bukkit.craftbukkit.v1_20_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:480) ~[paper-1.20.2.jar:git-Paper-307] at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1470) ~[paper-1.20.2.jar:git-Paper-307] at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:446) ~[paper-1.20.2.jar:git-Paper-307] at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1379) ~[paper-1.20.2.jar:git-Paper-307] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1156) ~[paper-1.20.2.jar:git-Paper-307] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:315) ~[paper-1.20.2.jar:git-Paper-307] at java.lang.Thread.run(Thread.java:840) ~[?:?] ```
issue