Fix shops having to be set to buy and sell to work

Fix shops having to be set to buy and sell to work, currently if set to just buy the buttons would not apear. Also use the items display name instead of material name,
so custom items can be used and display properly.
Add null check to prevent errors

Add a null check to make sure the chat event is caused by a player.
Use items display name instead of material name

Use an items display name instead of material name so items with custom meta can be used fluently.