Buggy code:
public abstract class PlayerShopkeeper extends Shopkeeper { protected static abstract class PlayerShopEditorHandler extends EditorHandler { protected PlayerShopEditorHandler ( UIType uiType , PlayerShopkeeper shopkeeper ) { } @ Override protected boolean canOpen ( Player player ) { } @ Override protected void onInventoryClick ( InventoryClickEvent event , Player player ) { } protected void setEditColumnCost ( Inventory inventory , int column , int cost ) { } protected int getPriceFromColumn ( Inventory inventory , int column ) { } } protected static abstract class PlayerShopTradingHandler extends TradingHandler { protected PlayerShopTradingHandler ( UIType uiType , PlayerShopkeeper shopkeeper ) { } @ Override protected boolean canOpen ( Player player ) { } @ Override protected void onPurchaseClick ( InventoryClickEvent event , Player player , ItemStack [ ] usedRecipe , ItemStack offered1 , ItemStack offered2 ) { } } protected static class PlayerShopHiringHandler extends HiringHandler { protected PlayerShopHiringHandler ( UIType uiType , PlayerShopkeeper shopkeeper ) { } @ Override protected boolean canOpen ( Player player ) { } @ Override protected boolean openWindow ( Player player ) { } @ Override protected void onInventoryClick ( InventoryClickEvent event , final Player player ) { } } protected UUID ownerUUID ; protected String ownerName ; protected int chestx ; protected int chesty ; protected int chestz ; protected boolean forHire ; protected ItemStack hireCost ; protected PlayerShopkeeper ( ) { } @ Override protected void initOnCreation ( ShopCreationData creationData ) { super . initOnCreation ( creationData ) ; Player owner = creationData . creator ; Block chest = creationData . chest ; Validate . notNull ( owner ) ; Validate . notNull ( chest ) ; this . ownerUUID = ( NMSManager . getProvider ( ) . supportsPlayerUUIDs ( ) ) ? owner . getUniqueId ( ) : null ; <START_BUG> this . ownerName = owner . getName ( ) . toLowerCase ( ) ; <END_BUG> this . chestx = chest . getX ( ) ; this . chesty = chest . getY ( ) ; this . chestz = chest . getZ ( ) ; this . forHire = false ; } @ Override protected void onInitDone ( ) { } @ Override protected void onPlayerInteraction ( Player player ) { } @ Override protected void load ( ConfigurationSection config ) { } @ Override protected void save ( ConfigurationSection config ) { } public void setOwner ( Player player ) { } public void setOwner ( UUID ownerUUID , String ownerName ) { } public UUID getOwnerUUID ( ) { } public String getOwnerName ( ) { } public String getOwnerAsString ( ) { } public boolean isOwner ( Player player ) { } public Player getOwner ( ) { } public boolean isForHire ( ) { } public void setForHire ( boolean forHire , ItemStack hireCost ) { } public ItemStack getHireCost ( ) { } public boolean usesChest ( Block chest ) { } public Block getChest ( ) { } protected void setRecipeCost ( ItemStack [ ] recipe , int cost ) { } protected int getCurrencyInChest ( ) { } protected List < ItemCount > getItemsFromChest ( Filter < ItemStack > filter ) { } public static ItemStack createCurrencyItem ( int amount ) { } public static void setCurrencyItem ( ItemStack item ) { } public static boolean isCurrencyItem ( ItemStack item ) { } public static ItemStack createHighCurrencyItem ( int amount ) { } public static void setHighCurrencyItem ( ItemStack item ) { } public static boolean isHighCurrencyItem ( ItemStack item ) { } public static ItemStack createZeroCurrencyItem ( ) { } public static void setZeroCurrencyItem ( ItemStack item ) { } public static boolean isZeroCurrencyItem ( ItemStack item ) { } public static ItemStack createHighZeroCurrencyItem ( ) { } public static void setHighZeroCurrencyItem ( ItemStack item ) { } public static boolean isHighZeroCurrencyItem ( ItemStack item ) { } No newline ; at end ; of file ; }

Fix:
this . ownerName = owner . getName ( ) ;