Search code examples
javaminecraftspigot

Getting an the name of an item and getting the string value returns gibberish


I want to get the player whos name matches the name of the block which was placed and updated this players gamemode to survival. But this just gives me gibberish in the console:

@EventHandler
public void onPlace(BlockPlaceEvent blockPlaceEvent){
    //Player ded = Bukkit.getPlayer(String.valueOf(blockPlaceEvent.getItemInHand().displayName()));- not important
    //gives just the item name
    blockPlaceEvent.getPlayer().sendMessage(blockPlaceEvent.getItemInHand().displayName());
    //gibberish
    System.out.println(Bukkit.getPlayer(String.valueOf(blockPlaceEvent.getItemInHand().displayName())));


}
[19:15:09 INFO]: [Immortality] [STDOUT] TranslatableComponentImpl{key="chat.square_brackets", args=[TextComponentImpl{content="", style=StyleImpl{obfuscated=not_set, bold=not_set, strikethrough=not_set, underlined=not_set, italic=true, color=null, clickEvent=null, hoverEvent=null, insertion=null, font=null}, children=[TextComponentImpl{content="Windows_Paride", style=StyleImpl{obfuscated=not_set, bold=not_set, strikethrough=not_set, underlined=not_set, italic=not_set, color=null, clickEvent=null, hoverEvent=null, insertion=null, font=null}, children=[]}]}], style=StyleImpl{obfuscated=not_set, bold=not_set, strikethrough=not_set, underlined=not_set, italic=not_set, color=NamedTextColor{name="yellow", value="#ffff55"}, clickEvent=null, hoverEvent=HoverEvent{action=show_item, value=ShowItem{item=KeyImpl{namespace="minecraft", value="player_head"}, count=1, nbt={SkullOwner:{Id:[I;1311740293,1907444130,-1719123357,-1000482567],Name:"Windows_Paride",Properties:{textures:[{Signature:"x3tHAiXrUDBYofKatE+CaD46u0lyjkxlab+Xg+zKNEO1GMGnjPHXsfRSl9CVp9bBLJLu3aMcd8qI/bcm+E8mqJlbHRxjzRi/7W/JOTbsWWurf32i4fgO1VqxoSWsGb6PGbtCVKI7LXm0nPu+lreVHKWbgAqaw8koadUZIu+XhS8hTeqwpuNMLcrS5Wh7ODdf7hBK/BDT67RC3y6pjmDNeznrH6k8YEHQVZszJ/RCicP9AyQmbwCppjzjubYdwwIOi7r+jLmsCVL4r03svzOuugtGoMNgDFj/Gm/dLrvsN+Hy7lggltApbUFkxnewrkvTq+/ZQVACjsVEphwd6kMnzq8lRiUjtsqpcJpmhIttyAR0y+kgWX6L9zWP/z8FOACsXjf7OJfPPOVBs3LHLrBjDKuD9fTvbhZwdzW4Nonpmqk8M9Z+Y/tXbGyINzCdbs5lbNQYRwH7ACzjUQwHi93e5dwN622VP/vBzv0Uz7g9quohzlZKyogDuiSJUpPRBzyMhxWrVneMEOzj6fGIuN/Qxx6XVi6ZfoH0WRCvYeOjOqcR426rbXzoXV6vDHV0OxvKkCv7Md1TqO9zb3jaB7ekEVY2mWiJitNMuyT8CGATMCKhimCuP+RFu1leQXVFdnaFtbviQ6HxDoVxndODzrSRfz2GJ2ZCN4atQb4MuqMUdg0=",Value:"ewogICJ0aW1lc3RhbXAiIDogMTY2Nzc2MDM5NTYwNCwKICAicHJvZmlsZUlkIiA6ICI0ZTJmOTE4NTcxYjE0OWEyOTk4ODQyNjNjNDVkZDhmOSIsCiAgInByb2ZpbGVOYW1lIiA6ICJXaW5kb3dzX1BhcmlkZSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS83MzI1ODg2Y2JlZDQ3ZWI5MDk0ZWQyY2YxN2QyZWMyNGQzYzZhYmJlYzFlNDU3YjIyOTU1NzkxZjI2ZjkyZjZkIiwKICAgICAgIm1ldGFkYXRhIiA6IHsKICAgICAgICAibW9kZWwiIDogInNsaW0iCiAgICAgIH0KICAgIH0sCiAgICAiQ0FQRSIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjlhNzY1Mzc2NDc5ODlmOWEwYjZkMDAxZTMyMGRhYzU5MWMzNTllOWU2MWEzMWY0Y2UxMWM4OGYyMDdmMGFkNCIKICAgIH0KICB9Cn0="}]}},Unbreakable:1b,display:{Name:'{"text":"Windows_Paride"}'}}}}, insertion=null, font=null}, children=[]}

I tried doing ComponentLike etc but it returned null when I did that.


Solution

  • As per the comments you're trying to get h the name of the player.

    Refer https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/Player.html#getName() from the documentation.

    First get the Player object and then fetch the name from the player object.

    Player player = Bukkit.getPlayer(String.valueOf(blockPlaceEvent.getItemInHand().displayName()));
    
    player.getName();