Code (Text): public String serverName(CommandSender sender) { if (sender instanceof ProxiedPlayer) { ProxiedPlayer player = (ProxiedPlayer) sender; return player.getServer().getInfo().getName(); } return "None"; } I made this method to get the server name but all it does is just return "none" on my Hub Scoreboard any ideas on how I can fix this?
Yes but If I remove that it gives me an error, and I tried to return it to serverName but that doesn't work since I can't access the Player.
Try declaring ProxiedPlayer before your if statement, currently your if statement can't see what ProxiedPlayer is. Code (Text): public String serverName(CommandSender sender) { ProxiedPlayer player = (ProxiedPlayer) sender; if (sender instanceof ProxiedPlayer) { return player.getServer().getInfo().getName(); } return "None"; }
YOu're casting the sender to a player before checking it's actually a player.. Code (Text): public String serverName(CommandSender sender) { if (sender instanceof ProxiedPlayer) { return ( (ProxiedPlayer) sender ).getServer().getInfo().getName(); } return "None"; }
Try this: Code (Java): public String serverName(CommandSender sender) { System.out.println("DEBUG: The sender's name is " + sender.getName() + "!"); if (sender instanceof ProxiedPlayer) { return ( (ProxiedPlayer) sender ).getServer().getInfo().getName(); } return "None"; } If it says The sender's name is CONSOLE then something is wrong with how you're calling that method.