static Player getOfflinePlayer(String player, UUID uuid) { Player pplayer = null; try { File playerfolder = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "players"); for (File playerfile : playerfolder.listFiles()) { String filename = playerfile.getName(); String playername = filename.substring(0, filename.length() - 4); GameProfile profile = new GameProfile(uuid, playername); if (playername.trim().equalsIgnoreCase(player)) { MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer(); EntityPlayer entity = new EntityPlayer( server, server.getWorldServer(0), profile, new PlayerInteractManager(server.getWorldServer(0))); Player target = entity == null ? null : (Player) entity.getBukkitEntity(); if (target != null) { target.loadData(); return target; } } } } catch (Exception e) { return null; } return pplayer; }
@Override public boolean onCommand(CommandSender cs, Command cmd, String label, String[] args) { if (cmd.getName().equalsIgnoreCase("loadplayer")) { if (!plugin.ah.isAuthorized(cs, "rcmds.loadplayer")) { RUtils.dispNoPerms(cs); return true; } if (args.length < 1) { cs.sendMessage(cmd.getDescription()); return false; } final Player t = plugin.getServer().getPlayer(args[0]); if (t == null) { cs.sendMessage(MessageColor.NEGATIVE + "No such player!"); return true; } if (!t.getName().equals(cs.getName()) && !plugin.ah.isAuthorized(cs, "rcmds.others.loadplayer")) { cs.sendMessage(MessageColor.NEGATIVE + "You cannot load other players' data!"); return true; } t.loadData(); cs.sendMessage(MessageColor.POSITIVE + "Data loaded."); return true; } return false; }
// CREDITS TO: lishid (OpenInv Author) public static Player getPlayer(String name) { Player target = Bukkit.getServer().getPlayer(name); if (target == null) { try { // See if the player has data files // Default player folder File playerfolder = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "players"); if (!playerfolder.exists()) { return null; } String playername = matchUser(Arrays.asList(playerfolder.listFiles()), name); if (playername == null) { return null; } // Create an entity to load the player data final MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer(); final EntityPlayer entity = new EntityPlayer( server, server.getWorldServer(0), playername, new ItemInWorldManager(server.getWorldServer(0))); target = (entity == null) ? null : (Player) entity.getBukkitEntity(); if (target != null) { target.loadData(); } else { return null; } } catch (Exception e) { return null; } } return target; }
@Override public void loadData() { caller.loadData(); }
@Override public void loadData() { if (!player.isOnline()) { player.loadData(); } }